+ Easily debug your system by displaying individual force vectors. + High performance, parallel algorithms, spatial data-structures. + Write your own custom forces, no coding required. + Open source framework for others to build custom behaviors. + Boid forces: Cohese, Separate, Align, & View. + Contain Agents within Brep, Box, Surface, and Polysurface environments. + Forces: Path Follow, Attract, Contain, Surface Flow, Seek, Arrive, Avoid Obstacle, Avoid Unaligned Collision, Sense Image, Sense Point, & more to come. + Behaviors: Bounce Contain, Kill Contain, Initial Velocity, Eat, Set Velocity, & more to come.
Future work:
+ Behaviors to drive simulations of people and vehicles.
+ Temporal inputs can change the actions of the system over time.
Download the add-on on Food4Rhino
If you find any bugs or have any feature requests please post them on the GitHub Issue Tracker which will allow everyone to see which bugs are open or closed and allows me to update you when it is fixed.
This is an open source project so if you need custom defined forces or behaviors for your project reach out to me about becoming a committer.
View the project on GitHub
To get started check out this video tutorial on how to set up a basic particle scene. Follow along with this example script.
Learn how to set up a flocking simulation with agents in this video tutorial and example file.
To learn more about the polymorphic type system in the latest release of Quelea see this video explanation.
For questions on how to use Quelea, please create a new Discussion.…
Added by Alex Fischer at 1:20pm on February 16, 2015
te some cut sheets, but not to optmize material, rather define some cut lines. Everything that I am cutting is made of planar wood elements, but there are very specific geometries (mostly straight lines) and I have to put tolerances and radiasas at the corners in order to cut on the cnc mill. Spending time to figure out how to automate is necessary, but I am stuck!
One thing the definition is doing is taking my brep modeled components in rhino and makking them into 2d close curves and laying them side by side. It works...not ideal as its not layed out in a sheet, but that is not the most important part.
Another particular problem is that you will see some notches in the curves, which other pieces will slip into, so different slots need different specific offsets (making them larger) as a toelrance to allow for material play. This I don't even know how to set up so maybe it will just have to wait.
THE MAIN QUESTION, and super important would be, LIFESAVER:
At all 'inward' corners...which I think will always mean concave corners (most are 90 degrees, but are within to sides, instead of a corner sticking out). I'm sure its obviousy, but the reason being the outward corners a circular dril bit can cut, but inward ones need an arc profile extended beyond where the corner of the other piece will fit into. The drill bit i am using is 6mm, so 6mm diamters arcs is what i'm working with.
I have managed to put such an arc at every vertices of each cut piece. The problem being some stick outward isntead of cutting into the piece. So each one needs to be orieneted correctly. Ideally they would also only draw into inward corners, but I can always delete them out. I think maybe I am missing a more logical mathematical way of defining?
For these geometries it is not very important which side the half circle arc in on in the inward corners, but I also have some geometries that I will have to control where the circles face according to the rest of the cut piece.
The cutouts in the middle of the pieces that are curves do not need such corners obviously.
The picture is an example drawn
I hope this isn't too specific and long. in general though automating fabrication, and controling pracitcal math and orientation problems like this is itnersting to me!
THANKS…
perienced with grasshopper, but so far I've managed to combine the following:
Giulio Piacentino's "Catenary arch from height" script
Pirouz Nourian's "Mobius" script (Obtained from a friend)
End Result:
Here's where I'm stuck: I want the mobius twist to revolve around the midpoint of the arch, but the script uses the input values to determine the endpoints, resulting in a weird sinuous shape when viewed from above. Also, the secondary end points (generated by the mobius script, determining the width of the surface) are generated by default along the z axis, resulting in an arch that only touches the "ground" at two points. I attempted to work around this issue by trying to force the zHeight parameter to correspond with the y axis (thus rotating the arch 90 degrees so it would lay "flat"), but the script interprets the third point as a value and not as an actual point to bisect. I thought this might be an issue with the C# component that I obtained from Giulio Piacentino's script, so I attempted to tinker around with the source code. Unfortunately, I'm not fluent in C# so I only managed to mess everything up (I've since recovered the code from the cache). Anybody got some ideas? -BC …
onsidered period.
Even if the end of July for the mediterranean climate is not the best period to perform an adaptive comfort analysis (it's just a pretest to define a LB model) I want to refine the Adaptive comfort Chart (AC) by changing the external air temperature data imported from the .epw file with that of monitored data as reported here below:
Where the monitored ext air temperature are in this form (green panel below):
I have used the comfortPar component to set the following parameters:
Adaptive chart as defined by EN 15251
90% of occupants comfortable
the prevailing outdoor temperature from a weighted running mean of the last week
fully conditioned space (even if it is not properly in line with AC as already discussed)
The question is this: the AC component could correctly apply the code below if there is only a list of external temperature data for a restricted period (without indication about the limits of this period) and not for an entire year?
else: #Calculate a running mean temperature. alpha = 0.8 divisor = 1 + alpha + math.pow(alpha,2) + math.pow(alpha,3) + math.pow(alpha,4) + math.pow(alpha,5) dividend = (sum(_prevailingOutdoorTemp[-24:-1] + [_prevailingOutdoorTemp[-1]])/24) + (alpha*(sum(_prevailingOutdoorTemp[-48:-24])/24)) + (math.pow(alpha,2)*(sum(_prevailingOutdoorTemp[-72:-48])/24)) + (math.pow(alpha,3)*(sum(_prevailingOutdoorTemp[-96:-72])/24)) + (math.pow(alpha,4)*(sum(_prevailingOutdoorTemp[-120:-96])/24)) + (math.pow(alpha,5)*(sum(_prevailingOutdoorTemp[-144:-120])/24)) startingTemp = dividend/divisor if startingTemp < 10: coldTimes.append(0) outdoorTemp = _prevailingOutdoorTemp[7:] startingMean = sum(outdoorTemp[:24])/24 dailyRunMeans = [startingTemp] dailyMeans = [startingMean] prevailTemp.extend(duplicateData([startingTemp], 24)) startHour = 24
…
and pioneers in the fields of architecture, design and engineering.
The event will be in two parts, a four day Workshop 15-18 April, and a public conference beginning with Talkshop 19 April, followed by a Symposium 20 April. The event follows the format of the highly successful preceding events sg2010 Barcelona, sg2011 Copenhagen, and sg2012 Troy.
The Challenge for sg2013 is entitled Constructing for Uncertainty.
more information
CONSTRUCTING FOR UNCERTAINTY
Design and construction, increasingly more information-centric, must also address issues of computational ambiguity. As users, we must drive computational systems to assume new roles and subsume more domains to meet the needs before us. We must consider issues of time and permanence within a cultural and technological landscape of constant change - our most grand gestures will define our environment physically, culturally and economically for generations.
Where historic responses to uncertainty constructed a simplistic environment with basic mechanisms for aggregation and subdivision, we augment these with smart, dynamic and interactive systems. Where modeling capacity has been limited, we now take advantage of vast amounts of data collected by sensing and scanning devices, processed by cluster or grid computing, filtered by machine learning algorithms into patterns, and communicated by ubiquitous devices. Our past data trajectories can guide us in discovering robust and tolerant design systems to meet the demands of a malleable present and uncertain future.
sg2013 Constructing for Uncertainty: transition computational design from the hard space of the ideal to the soft reality of an uncertain built environment.
more information
sg2013 WORKSHOPSThe SG Workshop is a unique creative cauldron attracting attendees from across the world of academia, professional practice as well as many of the brightest students. The Workshop is open to 100 applicants who come together for four intensive days of design and collaboration.
The annual Workshop is organised around Clusters. Clusters are hubs of expertise comprising of people, knowledge, tools, materials and machines. The Clusters provide a focus for Workshop participants working together, within a common framework.
more information
sg2013 TALKSHOPAfter four intense days of innovative work, Talkshop offers an opportunity for critical reflection on what has been accomplished in the Workshop. Talkshop will be an opportunity to open debates, pose questions, challenge orthodoxies, and propose new ideas.
Talkshop will feature informal and open discussions between Cluster participants, leading practitioners and emerging talents in digital design, offering inside perspectives on how the landscape of computational design is reshaping built form.
sg2013 SYMPOSIUMThe Symposium will examine the year's Challenge. Invited keynote speakers will showcase major projects and research from around the globe that mark out the territory of the year's Challenge. The Symposium is a unique opportunity to hear insights into the challenges ahead for the discipline.
Interwoven throughout the day will be reports and highlights from each Workshop Cluster, giving an opportunity to view work created during the previous four days of intensive collaboration, design and development.
sg2013 SCHEDULECall for Clusters 26 September 2012Cluster Proposals Due 4 November 2012Workshop Applications Open November 2012
Workshop 15 - 18 April 2013Conference 19 - 20 April 2013
More information about the event can be found at smartgeometry.org…
Added by Shane Burger at 10:35am on October 25, 2012
ically i needed a 3d weighted voronoi to create a controllable screenwall. I looked here and in other sites trying to find an answer, but all what i found were some approximation of the issue. So you know:
http://www.grasshopper3d.com/forum/topics/weighted-3d-voronoi-possible?commentId=2985220%3AComment%3A950591
This is an old post in the fórum (even before the gh comp. voronoi exists) about the theme, although i have understood the theory of weighted voronoi, it was impossible to me to carry this logic to a grasshopper algorithm, even though i tried.
http://www.grasshopper3d.com/forum/topics/voronoi-customization-with-attraction-points
This is a short post about the theme that seems have achieved a solution. I don't know if it was my lack of knowledge (probably yes), but i could not uderstand how the presented solutions solved the problem. :/
http://www.grasshopper3d.com/forum/topics/looking-for-weighted-voronoi?id=2985220%3ATopic%3A49548&page=1#comments
This is the longer post about the theme i have found. It presents a very good approximation to 2d weighted voronoi and i could manage it, but i could not find a way to carry this logic in a 3d voronoi.
http://www.grasshopper3d.com/forum/topics/differentiated-voronoi
In this post i learned that weighted voronoi creates hyperbolic curves instead of straight lines, what made me wonder if it would be possible doing a 3d weighted since i needed flat surfaces in the cells. However in this same post i read something about power diagrams, what brings me to the next two links.
http://graphics.uni-konstanz.de/publikationen/2005/voronoi_treemaps/Balzer%20et%20al.%20--%20Voronoi%20Treemaps.pdf
https://www.uni-konstanz.de/mmsp/pubsys/publishedFiles/NoBr12a.pdf
These links are of two papers about the using of voronoi in the development of a treemap (i'm not entering in the details of treemaps here, but the papers give a good introduce if you are interested). Well, i learned that basically are two types of weghted voronoi diagrams: Additively weighted (this one creates the hyperbolic curves) and Powered weighted (this one creates straigh lines). In the papers the authors present their scripts to achieve the diagrams. I have studied python a little bit, but my lack of knowledge (again) in scripts did not allowed me to understand their complex algorithms.
http://www.laratomholt.nl/ghscripts.html
The last link (finally) have some grasshopper scripts of a researcher named Lara Tomholt. One of these scripts is about weighted voronoi in 2 and 3d and achieved a very good approximation of it. However it still has some voids between the cells, what is undesirable to my objectives.
Sorry for this big research historic, but since the theme has been very discussed, i thought it was a good idea show this "state of art" for a better understanding before showing my developments.
Joining all this knowledge achieved through research and a bit of what i already knew in grasshopper, i have been trying to create my weighted voronoi in 2 and 3d cells. I started trying to make adjustments in the scripts found in the links and honestly don't remember exactly how i got to this file attached, probably a consequent of the very try and error.
The script is based in the conectivity of the deulanay mesh component.
Basically i used the connections of one point to create influence in the points connected to it by scaling a line between them, while using the original point as the center of scale and using the new end points as inputs in the voronoi component.
This approach solved the problem for a 1 cell weighting, to make it work in more than 1 cell i used a recursive looping with hoopsnake for make it always consider the new set of points while adding the weights (better understandable looking the script).
This approach seems to work until the penultimate point (probably because of the nature of the delaunay mesh connections i guess), but most important could be used with the 3d vornoi component.
In the file attached i used a range component to create a increase in the weight of the cells aligned with the sequence of the points referenced, of course other methods can be used to create more dynamic weights in the cells.
Well, i'm not sure if my approach is the correct one to solve the problem, neither if it is really a solution at all, so i'm open to suggestions, reviews and comments that can validate or not this aprroach, also open to new solutions in the case.
Sorry for the big post and the not very good english.
Thank you for Reading. :)…