Ruby, [9] R, [10] PHP ,[11] MATLAB [12]
Maybe it can find it's way into GH somehow..
when using the default GH random number generator i mostly use much higher seed values.…
Added by Robert Vier at 10:08am on December 27, 2012
g-in, brief theory of complex systems, introduction to multi-agent systems and non-linear design, flocking, Boid library, basic examples - brownian motion, adhesion, separation, alignment, geometry following.-----------------------TIME: first session10am – GMT, London11am – Paris, Brussels, Rome, Vienna, Budapest, Bratislava, Warsaw9pm - Sidney7pm – Tokyo6pm – Beijing, Shanghai, Shenzhen, Hong Kong, Taipei3:30pm – Mumbai3pm – Karachi2pm - Samara1pm – Baghdad, Moscow, St Petersburg12pm – Istanbul, Athens, Helsinki, Cairo, JohannesburgTIME: second session3pm – GMT, London4pm – Paris, Brussels, Rome, Vienna, Budapest, Bratislava, Warsaw7pm – Dubai, Abu Dhabi, Baku6:30pm – Tehran6pm – Baghdad, Moscow, St Petersburg5pm – Istanbul, Athens, Helsinki, Cairo, Johannesburg1pm – Rio de Janeiro, São Paulo, Montevideo12pm – Buenos Aires, Santiago10am – Toronto, New York City, Bogota, Lima9am – Mexico City7am – Los AngelesWEBINARSThe rese arch Grasshopper® sessions are unique for their thorough explanation of all the features, which creates a sound foundation for your further individual development or direct use in the practice. The webinars are divided into four groups: Essential, Advanced, Iterative and Architectural. If you are a Rhinoceros 3D or Grasshopper® newcomer, you are advised to take all the Essential sessions before proceeding to the next level. If none of the proposed topics suit your needs or if you require special treatment, you can request a custom-tailored 1on1 session. All sessions are held entirely in English.The webinars are series of on-line live courses for people all over the world. The tutor broadcasts the screen of his computer along with his voice to the connected spectators who can ask questions and comment in real time. This makes webinars similar to live workshops and superior to tutorials.…
Added by Jan Pernecky at 3:36pm on February 17, 2015
ble: Informing Digital Design with Real World Data
Information about each Workshop Cluster can be found here:
Cyber Gardens
Use the Force
Urban Feeds
Reflective Environments
Interacting with the City
Agent Construction
Authored Sensing
Performing Skins
Responsive Acoustic Surfacing
Hybrid Space Structure Typologies
The SmartGeometry 2011 Workshop will take place at CITA http://cita.karch.dk/
Applications to attend the SmartGeometry 2011 Workshop in Copenhagen will close next Monday 31st January 2011. General Conference registration will open within 1 month.
We hope to see you there!
****************************************************
Workshop 28th-31st March
Shop Talk 1 April
Symposium 2 April
Reception 2 April
These events follow the highly successful previous SG events in Barcelona 2010, San Francisco 2009, Munich 2008, New York 2007, Cambridge/London, UK 2006 and multiple preceding events.
Click here for more info...
BUILDING THE INVISIBLEInforming Digital Design with Real World Data
THE PREMISEVast streams of data offer a rich resource for designers. By incorporating external information into our design processes the autonomy of the design is challenged. User data, energy calculations, embedded sensing, material and structural simulation, human behaviour and perception, particle flows and force fields allows design to be situated and responsive. From the simulation of megacities to the solid modelling of material systems, design has the potential to be informed by the real. Design sits not separate from is environment but inhabits an ecological system, open, dynamic and interdependent, diverse, partially self-organising, adaptive, and fragile. Across scale and within time we now have the chance to instil architecture with an immanent intelligence creating new relationships between the user, the built and its ecosphere.THE OPPORTUNITYSystems theorists suggest that data is only a raw material. It can be differentiated from information, knowledge and wisdom. Understanding is multi-levelled: understanding of relations, understanding of patterns, understanding of principles. As digital designers our challenge is in harnessing the power of computation to assist us in informing our design process. Computers help us collect, manage and analyse the environment and inform us about an abundance of data. Our challenge is to use these inputs in a meaningful way to help us make better informed design decisions.THE AIMSG 2011 explores how the incorporation of real world data challenges existing design thinking. The SG 2011 workshop aim is to create physical prototypes of design systems to be exhibited in the SG2011 exhibition.
The SmartGeometry Group is a not-for-profit educational organization dedicated to the use of computational tools in architecture and engineering. SG brings professionals, academics, and industry together to explore the next generation of digital design. SG Workshops are non-platform specific, believing it is the methodology, not the tool, that matters.
…
Added by Shane Burger at 8:01pm on January 27, 2011
t of data it has to operate on. So only those aspects of the algorithm that differ in these cases are relevant.
For example if your algorithm always does exactly the same thing (let's say all it does is measure the size of an array and display it on screen) will be O(1), because it doesn't matter if you run it on an array containing 10 or 1000000 items. Measuring the size of an array is a constant-time operation:
Print(string.Format("Array contains: {0} element(s)", data.Length);
However if your algorithm works on not on arrays but on linked-lists, then it becomes an O(N) operation because counting all the elements in a linked list means you have to iterate over all of them. And the longer the list, the more iterations you need. In fact the number of iterations is exactly the same as the number of items. (ps. if you'd be using the System.Collections.Generic.LinkedList<T> class then it's still O(1), because apparently that particular implementation of linked lists caches the count and keeps it up to date.)
If you have a loop that runs for each item, and then inside that loop there is another loop that also runs for each item, then your complexity becomes O(N²). Or, in a similar case if your algorithm consumes two collections (N and M) and iterates over all items in N, and then inside that loop it iterates over all items in M, the complexity is O(N×M).
The case can be made that only the most severe complexity is relevant enough to report. For example if you have an algorithm that comprises of three steps, the first of which is O(log(N)), the second is O(N²) and the third is O(3ⁿ), then technically the total complexity would be O(log(N) + N² + 3ⁿ), however the first two parts are utterly insignificant compared to the third and therefore can be omitted entirely. Consider for example increasing the input size from 10 to 20 elements:
log(10) + 10² + 3¹⁰ = 1 + 100 + 59049 = 59150
log(20) + 20² + 3²⁰ ≈ 1 + 400 + 3486784401 ≈ 3486784802
As you can see the increase of the complexity is almost entirely due to the O(3ⁿ) portion, so much so that there's almost no point in mentioning the other two.
Now, your specific questions:
Constructors/declarations and method invokes are not necessarily O(1). In this particular case they are, but it is possible that some constructor you call may have a higher complexity. For example if instead of an empty List<T> you're constructing a SortedList<T> based on your inputs, then it definitely may be the most significant complexity in your entire algorithm and it needs to be taken into account.
Correct. A loop like this has complexity O(N), ignore stuff that only happens once like the declaration of the iteration variable.
I don't understand that line of code. cP is already a list. Why are you calling ToList() on it? In general making copies of memory-contiguous collections (like arrays or lists) can be done in O(1), depending on implementation, because blocks of memory can simply be duplicated or moved at one go using the correct hardware ops. However other times it will require a loop in which the complexity goes up.
It's very cheap to add items to lists, provided the list has enough space to add new items. By default a list is big enough to contain only 4 items. If you try and add a fifth one, the list will need to allocate more memory elsewhere, copy the 4 existing items into the newly allocated space and only then add a new item. So, if you know ahead of time how many items you'll be adding to a list (or even if you only know a theoretical upper bound), you should construct the list using that known capacity. This will speed up the process of adding many items to a single list.
Don't know how crypto providers work, but since this part of your algorithm does not depend on cp.Count or the magnitude of populationCount, it doesn't matter for the big-O complexity metric.
…
lass BrepDeform Inherits GH_Component Public Reslist As New List(Of String) Public Sub New() MyBase.New("BrepDeform", "Deform", _ "移动物件的控制点" & vbCrLf & "(Move the control Point to change a object)", "SEG", "Modify")
End Sub Public Overrides ReadOnly Property ComponentGuid As System.Guid Get Return New Guid("8226e0ea-ed6b-47c2-8a24-244f044152d8") End Get End Property Protected Overrides ReadOnly Property Internal_Icon_24x24() As System.Drawing.Bitmap Get Return My.Resources.SEG_BrepDeform End Get End Property Protected Overrides Sub RegisterInputParams(ByVal pManager As GH_Component.GH_InputParamManager) ' pManager.AddTextParameter("Guid", "Id", "将要被替换的犀牛物件" & vbCrLf & "(RhinoObjects that will be replaced)", GH_ParamAccess.item) 'Dim guidParam As New Param_Guid pManager.AddParameter(New Param_Guid, "Guid", "Id", "将要被替换的犀牛物件" & vbCrLf & "(RhinoObjects that will be replaced)", GH_ParamAccess.item) pManager.AddPointParameter("ControlPoint3d", "C", "控制点的位置" & vbCrLf & "(Control Point's location)", GH_ParamAccess.item) pManager.AddPointParameter("NewPoint3d", "P", "新控制点的位置" & vbCrLf & "(New Control Point's location)", GH_ParamAccess.item) pManager.AddNumberParameter("Tolerace", "T", "输入点与物件实际控制点对比的精度" & vbCrLf & "(Tolerace for the Control Point match)", GH_ParamAccess.item, 0.1)
pManager.AddBooleanParameter("BlMove", "M", "如果是True则进行移动" & vbCrLf & "(If true Perform the Move)", GH_ParamAccess.item, False)
End Sub Protected Overrides Sub RegisterOutputParams(ByVal pManager As Kernel.GH_Component.GH_OutputParamManager) pManager.AddTextParameter("Result", "RG", "结果列表" & vbCrLf & "(Result)", GH_ParamAccess.list) End Sub Public Overrides ReadOnly Property Exposure As GH_Exposure Get Return GH_Exposure.primary End Get End Property
Protected Overrides Sub SolveInstance(ByVal DA As Kernel.IGH_DataAccess) If Banner.astrict.showmessage Then Return Dim Ids As Guid = Guid.Empty 'Dim Ids As String = String.Empty Dim tpt As Point3d = Point3d.Unset, opt As Point3d = Point3d.Unset Dim tolar As Double = 0.1 Dim blMove As Boolean = False If Not DA.GetData(0, Ids) Then Return If Not DA.GetData(1, opt) Then Return If Not DA.GetData(2, tpt) Then Return If Not DA.GetData(3, tolar) Then Return If Not DA.GetData(4, blMove) Then Return If Not blMove Then GoTo line1 Reslist.Add(Now & "_未替换!(Replace failed!)") Else Reslist.Clear() ' Grasshopper.Instances.ActiveCanvas.ModifiersEnabled = False End If
' rt.AddRange(docobjlist.Select(Function(geoobj As RhinoObject) GH_Convert.ObjRefToGeometry(New ObjRef(geoobj.Id)))) 'Private Checked(5) As Boolean, Namestr() As String = {"Point", "Curve", "Brep", "Mesh", "TextDot", "TextEntity"}
Try
Dim rh As RhinoDoc = Rhino.RhinoDoc.ActiveDoc Dim rhobj As RhinoObject = rh.Objects.Find(Ids) ' Dim rhobj As RhinoObject = rh.Objects.Find(New Guid(Ids))
Dim bobj As BrepObject = CType(rhobj, BrepObject) RhinoApp.RunScript("Cancel", False) RhinoApp.RunScript("Cancel", False) bobj.Select(True)
RhinoApp.RunScript("_SolidPtOn", False) Dim gobjs As GripObject() = bobj.GetGrips ' rh.Views.RedrawEnabled = False For Each grpobj As GripObject In gobjs
If grpobj.CurrentLocation.DistanceTo(opt) < tolar Then grpobj.Select(True) Dim CurrentPln As Plane = RhinoDoc.ActiveDoc.Views.ActiveView.ActiveViewport.ConstructionPlane Dim tropt As New Point3d(opt), trtpt As New Point3d(tpt) tropt.Transform(Transform.PlaneToPlane(Plane.WorldXY, CurrentPln)) trtpt.Transform(Transform.PlaneToPlane(Plane.WorldXY, CurrentPln))
Dim movestr As String = "_move " + String.Format("{0},{1},{2} ", tropt.X, tropt.Y, tropt.Z) + String.Format("{0},{1},{2} _Cancel _Cancel", trtpt.X, trtpt.Y, trtpt.Z) RhinoApp.RunScript(movestr, True) grpobj.Select(False) End If
Next
'RhinoApp.RunScript("Cancel", False) 'RhinoApp.RunScript("Cancel", False) '' rh.Views.RedrawEnabled = True Reslist.Add(Now & "_替换成功!(Replace Success!)") Catch ex As Exception Reslist.Add(Now & "_替换失败!(Replace failed!)" & vbCrLf & ex.Message)
End Try ' Grasshopper.Instances.ActiveCanvas.ModifiersEnabled = True
line1: DA.SetDataList(0, Reslist) End Sub
'Private Sub Testt_PingDocument(sender As IGH_DocumentObject, e As GH_PingDocumentEventArgs) Handles Me.PingDocument ' Dim Mbool = Aggregate bcbool In Checked Into cb = Any(bcbool)
' If Not Mbool Then ' Checked(0) = True ' Message = Namestr(0) ' Order = 0 ' End If 'End Sub
End Class
The picture below shows the two question.
Question One I must use data dam, or the component can't batch deal the brep. I don't know why, I have You can give me a solution to make it working normal not using the data dam
Question Two I can not uset the Button component, If I use it, the gh canvas will die with some mouse event--. I have see this problem before in this forum,but there is no solution and explain. I want to know why and How to solve it.
I don't know if I have made my question clear,if not give a message. Thank you! Thank you all.
The gh test file and 3dm test file in the upload files.
…
ed. This image shows the problem:
If this is not what you are seeing on your own machine when you hook up your HBZones to a panel, then you have not uploaded the right Rhino and Grasshopper file.
2) You have not run your HBZones through an EnergyPlus simulation. You need to do this in order to get data with which to construct the indoor temperature map. I would strongly recommend following along through the first 8 videos of this tutorial series before trying to construct an indoor radiant temperature map of your own project (https://www.youtube.com/playlist?list=PLruLh1AdY-SgW4uDtNSMLeiUmA8YXEHT_)
3) You are using components from the last stable release, which is fine but you should know that there has been a lot of development on the indoor temperature map workflow in the last 20 days (there is now a much cleaner workflow that integrates the air and radiant temperature with comfort alanyses now on the github). If you imagine using this workflow frequently, I would recommend updating with the Ladybug_Update Ladybug and Hopneybee_Update Honeybee components. See the attached recent file for how the workflow is currently structured.
-Chris…
easy. There is room for discussion and clarification. The most wanted ideas quickly, and clearly, rise to the top. Voting is limited in a clever way and forces users to choose their most valued features.
The general rules, copied from: http://3dsmaxfeedback.autodesk.com/forums/80695-general-feature-requests/
Each user has 20 votes for each forum
Each idea can have no more than 3 votes by a single user
If you enter an idea, it will cost you 1 vote – therefore try to make sure the idea doesn’t already exist
The more precise and detailed a description you give, the more likely your idea will be considered
When an idea is implemented (or declined), votes are returned to all the users that voted
Users can change their votes at any time
Admins can move, edit and delete ideas as they see fit to better meet the goals of the forum
We will flag ideas that are getting our attention as “under review”. Because of limits on what we can say publicly, that is as far as we can go with commenting on a particular idea. If it is “under review” it simply means we’re studying it for possible implementation or gathering data, but there is no commitment to do it.
…
Added by Jonah Hawk at 6:13pm on September 9, 2014
her than number, where length was the fixed diameter of my prototype sphere.
That way, I thought, as the length of the ISOcurves changes along the height of my dome/shape the number of spheres along the line would change to fit. This works pretty well. The problem was shifting the alternate ISOcurve seams to get a psuedo staggered effect. I don't mind some overlap if the result is aesthetically pleasing (wink).
This only worked along the ISOcurves until the length started to change appreciably. Then the stagger factor varied. This was okay for my purposes since I was working with a fixed size sphere and could expect this.
I suppose that one could very slightly change the diameter of the spheres to make them fit more closely. If this variance stayed very low (maybe in the 1 or 2% range) then this would give the effect of a consistent tessellation.
Igor's Idea of using a hexagonal grid and placing spheres at the centroids is an excellent one as well.
The problem is that once you begin to vary the curvature of the target surface, as in my dome, the hex cells compress because he's using a rectangular array and projecting it onto a domed surface. If there was some way to reduce the cell count as the ISO curve length decreased then this might work better as well.
Another solution might be, as hinted at by Igor, using a geodesic dome with regular cells approximating the dome structure. Since my proto sphere diameter is typically 1 unit and the dimensions are typically around 40 x 18 x 20 units this result in a density of 14400 per dome. The faceted nature of the Geodesic would be smoothed out by the sheer number of cells. Another way to look at this would be to populate the vertices of a polyhedron which approximates the dome.
Unfortunately I have no idea how to do this. But I'm really eager to see what you folks come up with. Meanwhile I'm playing with both sets of definitions to understand them.…
Since I haven't had a chance to thoroughly test the Leonardo out just yet... I can tell that there are probably going to need to be a few minor changes (and potentially a few big changes). The minor changes will probably need to address the fact that a sketch doesn't 'reset' itself upon opening a serial port. This means that anything in the setup() function wont be initialized, and the serial communication might not work properly. It doesn't look like it's too hard to fix (just by adding a new while loop to check if the serial stream is open or not). But, this needs to be added to the Firmata. Some of the potentially bigger changes will deal with the fact that all 20 pins can be used for digital input and output. In addition, some of the digital pins can also be used for analog input (bringing the total analog inputs up to 12 using the Leonardo). This could potentially be really useful, especially if you could simply click on a pin in Grasshopper and tell it if you want it to be used as an analog or digital input. However, this opens up a lot of challenging tasks. Since the code would already be loaded onto the board, it would need to be able to respond to dynamic pin changes (which at the moment doesn't really happen, except for the different states for digital, PWM, and servo outputs... but in general those are all still outputs). I need to think a bit about the best way to approach this problem. Any suggestions would be greatly appreciated.
In general, I think the Leonardo can be used very similar to older boards. So, I think you could still use it with the current version of the Firmata... although I haven't had a chance to test it... and as I said, I may need to add a few lines of code just to get the serial connection established upon opening the port. I'll try to give this a look over the next week and provide some feedback. As always your input is appreciated.
Cheers,
Andy…
and diffuse radiation for 365 days at noon (12:30)
As you can see there are some bumps that I have discarded as dependant of geometry (Did simulations with different geometries even with just an horizontal surface to analyse and nothing else.) Also discarded from the solar position since the bumps happen in different days as you may see in the graph. I have also tested it with Diva and honeybee so I guess it has to be with RADIANCE. I got this data reading the illuminance files from an annual daylight simulation.
I guess it has something to be with how RADIANCE transform radiation to luminance (luminance = (RED*.263 + GREEN*.655 + BLUE*.082) * 179) And how it determines the values Red, green and blue of the spectrum for a determined solar radiation. I guess, because I was unable to learn how RADIANCE calculates this spectrum, that it has to be dependant of the radiation and solar position with a quite large difference of spectrum.
Normally this bumps are hiden behing the variation of radiation over the year, and I guess that the tool was not designed to have such unrealistic constant radiation, but I would like to know why this happens.
Can anyone help? Any clue is welcome!
Thank you.
…