nted" in space (at instance definition creation phase): indicates the obvious fact that if garbage in > garbage out (try it).
2. Load the GH thing. Task for you: Using Named Views locate the points of interest as described further and make a suitable view. That way you can navigate rather easily around (hope dies last).
3. Your attractors are controlled from here:
The slider in blue picks some attractor to play with. You can use this while the K2 is running.
4. Don't change anything here (think of it as a black box: who cares how it works? nobody actually):
5. Enable the other "black box": job done your real-life stuff is placed:
6. Enable the solver: your "real-life" things start to bounce around:
7. Go there are play with the slider. A different attractor yields an other solution:
8. With real-life things in place if you disable the C# ... they are instantly deleted and you are back in lines/points and the likes:
9. Either with instance definitions or Lines/points change ... er ... hmm ... these "simple" parameters and discover the truth out there:
10. Since these are a "few" and they affect the simulation with a variety of ways ... we need a "self calibrating" system: some mini big Brother that does the job for us. Kinda like applying safely the brakes when it rains (I hate ABS mind).
NOTE: the rod with springs requires some additional code ,more (that deals with NESTED instance definitions) in order to (b) bounce as a whole and at the same time (b) elongates or shrinks a bit.
More soon.
…
ng/702/30
EDIT: DK2 works, not with positional tracking yet (14/09/15)
Source is here:
https://github.com/provolot/RhinoRift
Steps:
1) Download these files (also attached below):
https://github.com/provolot/oculus-grasshopper/raw/master/oculus-grasshopper_v0.4.ghx
https://github.com/provolot/oculus-grasshopper/raw/master/OpenTrackRiftGrasshopperUDP.ini
https://github.com/provolot/oculus-grasshopper/raw/master/oculus-grasshopper-test_v0.1.3dm
2) Download OpenTrack - http://ananke.laggy.pk/opentrack/, and setup/install. Once installed, double-click to open.
3) In OpenTrack, load the 'OpenTrackRiftGrasshopperUDP.ini' profile. Click the 'Start' button and move your Rift around - make sure that it looks like the Yaw/Pitch/Roll data is being sent. TX/TY/TZ will all be 0, as Oculus doesn't have absolute positioning data.
4) In Rhino, open the test 3dm. You'll notice that there are two viewports - called 'LeftEye' and 'RightEye'. These have been placed to mimic where the screens should be for the Oculus Rift --- but only when Rhino is in fullscreen mode, with the command 'Fullscreen'. The placement needs to be tweaked, but should work.
If you want to use your own model, you can load your own .3dm file in Rhino, then you can right-click on the viewport name, and go to Viewport Layout > Read from File. If you then load my test file, Rhino should open my two viewports, sized correctly, onto your model.
The placement of these viewports need to be tweaked; if you find a better viewport layout, upload an empty Rhino file with your viewports, and we can share eye-layout 'templates'!
5) In Grasshopper, open the .ghx definition. Everything that is multiple-grouped is a value that can be changed. Two things here:
- IPD: Set this and convert it to the proper units for your model.
- Left/right viewport names. In this case, leave this as-is, since you're using my example file.
6) Turn on the Grasshopper Timer, if it isn't on already.
7) In the GH definition, toggle 'SyncEyes' to be True. Then, in the left viewport, try orbiting around with the mouse. The 'RightEye' viewport should move around as well, pretty much simultaneously.
8) In OpenTrack, click 'Start', then toggle 'ReadUDP' to be True. You should see the 'OpenTrackInfo' panel fill with data that's constantly changing.
9) Move around the landscape with your camera, and when you set on a starting view that's ideal, click the triangle of the Data Dam component to 'store' the data.
10) Finally, toggle 'OculusMove' to be true. If all works correctly, both viewports should move based on the Rift's movement.
Let me know if you have any problems!
Cheers,
Dan…
Added by Dan Taeyoung at 11:47pm on December 10, 2013
iece could be easily cut using the "plan" curve, the wall need extra attention and manual work to prepare.
This script attempts to automate the preparation of lasercutting curves with some control:
1) Height: The parameter is set using the "Name" property of the Rhino "plan" curve object. Number of storeys (e.g. 5) is to be entered in that field and the script will read it after you press F5 (recompute) in grasshopper. If the block models are not multiples of standardised storey height, you could set "Storey height" in grasshopper to 1 and set exact height to individual "plan" curves in Rhino.
(Special mention: This part of script including reading "Name" property in Rhino and auto-correcting curve direction is attributed to Victor Leung's Laser Cutting Tool for Block Models)
2) Mode of wrapping: The wall could either be "sitting" on the bottom plate and being completely covered by the top plate, or wrapping outside both the bottom and top plate. In either case, material thickness is taken into consideration and the finished model will remain the same size.
3) Extra height option: In preparing flat roof models, one may like to add extra height for parapet wall to make the model more appealing.
4) Easy picking up: Each individual piece has some uncut part (red lines for engrave) to hold itself in place after cutting. There is no need to use masking tape to stick. Individual pieces could be taken out when you are ready to use.
There are also known issues to this script:
1) At internal corners, the adjacent wall will be longer (in wrapping outside mode) or shorter (in sitting inside mode). You have to manual cut at this point.
2) It could not work with only one input curve. (Although it may be a stupid bug,) A dummy rectangle nearby could be created to make it work.
Enjoy,
Sa
Lasercutting Tool for Block Models (Fold and Wrap) by Sa Ng is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Based on a work at http://www.grasshopper3d.com/forum/topics/laser-cutting-tool-for-block-models.
…
es of creating complex geometries with increased control and manipulation possibilities which are processed by a computational subsystem articulated by Rhinoceros 5 + Grasshopper 3D & Sub-Plugins. We will explore the potential of design based on physical simulations with added interactivity and the formal expressivity of tensile membrane structures. Framework: 1 day Grasshopper for beginners crash course + 4 days Main course Date: 22th April _ 26 April 2014, 9:00-17:00 Place: Faculty of Architecture, Slovak University of Technology, Bratislava, Slovakia Tutors: Andrei Padure_Romania, Alex Ahmad_Austria Crash course tutors : Ján Pernecký_Slovakia, Rojiar Soleimani_Iran Organizer: 3D Dreaming, rese arch PROGRAM 1. 22 th April 2014 Rhinoceros 3D + Grasshopper Crash Course (optional) with Ján Pernecký and Rojiar Soleimani The participants will be thaught the essence of NURBS modelling, import/export techniques, best drafting practices and basic Grasshopper scripting – workflow, parameters, components, data structures, attractors, surface subdivision, mathematical and logical operations. 2. 23 - 26 April 2014 Tooling workshop: Grasshopper with Andrei Padure and Alex Ahmad TUTORS Andrei Padure Alex Ahmad Ján Pernecký Rojiar Soleimani ORGANIZERS Ján Pernecký Fabio Pavelli Matej Hoppan Rojiar Soleimani APPLICATION AND PAYMENT
REGISTER HERE ORGANIZING INSTITUTIONS 3D Dreaming rese arch 2b3d Digital Matters Faculty of Architecture, Slovak University of Technology MORE INFO AT www.parametricbratislava.sk…
I am starting to wonder if I have some sort of mismatch between my GHA file and my Diva version, though I'm not sure that would cause these kinds of problems.
Incidentally, I tried creating a brand new file and I get the same results. I cannot save anything with DIVA components in them, they disappear every time. :(
Speaking of 2.0, do you happen to know when that will be released?
Thanks,
Marc
info: Plugin version: 0.8.0066 info: Plugin version: 0.8.0066 info: Object list read info: Plugin version: 0.8.0066 info: Object list read info: Plugin version: 0.8.0066 info: Object list read info: Plugin version: 0.8.0066 info: Object list read info: Plugin version: 0.8.0066 info: Object list read info: Plugin version: 0.8.0066 info: Object list read info: Plugin version: 0.8.0066 info: Object list read error: Component DIVA Daylight Analysis for GH {4ec4ef63-a2e3-4501-891c-dc1107bdd94d} failed to deserialize itself: Method not found: 'Boolean Grasshopper.Kernel.GH_ComponentParamServer.ReadParameterTypeData(GH_IO.Serialization.GH_IReader)'.
error: Component Material {842f969a-3d16-4b32-9aaf-d996bd25181a} failed to deserialize itself: Method not found: 'Boolean Grasshopper.Kernel.GH_ComponentParamServer.ReadParameterTypeData(GH_IO.Serialization.GH_IReader)'.
error: Component Construction Assembly {2f4beddf-fda7-4852-9820-c36101cd316d} failed to deserialize itself: Method not found: 'Boolean Grasshopper.Kernel.GH_ComponentParamServer.ReadParameterTypeData(GH_IO.Serialization.GH_IReader)'.
error: Component Fixed Shade {cc5c1712-3cb4-4e91-b322-ebc050a75c3f} failed to deserialize itself: Method not found: 'Boolean Grasshopper.Kernel.GH_ComponentParamServer.ReadParameterTypeData(GH_IO.Serialization.GH_IReader)'.
error: Component Read Saved Thermal Results {b71b827f-7e12-42a8-a44a-a9ebb1da1596} failed to deserialize itself: Method not found: 'Boolean Grasshopper.Kernel.GH_ComponentParamServer.ReadParameterTypeData(GH_IO.Serialization.GH_IReader)'.
error: Component Viper: Thermal Analysis for GH {8a8fd0f2-dcd8-4c3c-83dd-d74baf8dcaba} failed
…
e it as the same type. It refers to a different type definition apparently.
Error:
error: [A]MassPix cannot be cast to [B]MassPix. Type A originates from '7ea7fec0-99c5-49a8-ae80-af752ac2be94, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' in the context 'LoadFrom' at location 'C:\Users\pnourian\AppData\Local\Temp\7ea7fec0-99c5-49a8-ae80-af752ac2be94.dll'. Type B originates from 'fd0b2126-e10f-49de-9fc9-5504405d4135, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' in the context 'LoadFrom' at location 'C:\Users\pnourian\AppData\Local\Temp\fd0b2126-e10f-49de-9fc9-5504405d4135.dll'. (line: 82)
This is the case:
in component A:
Private Sub RunScript(ByVal x As Object, ByVal y As Object, ByRef A As Object) Dim kjh As New MassPix(2.1, 2.3, 4, 5) A = kjh End Sub
'<Custom additional code> Public Class MassPix Private x As Double Private y As Double Private S As Integer Private K As Integer Sub New(xu As Double, yv As Double, SZ As Integer, KL As Integer) x = Xu y = yv s = Sz k = Kl End Sub End Class '</Custom additional code> End Class
and in component B:
Private Sub RunScript(ByVal x As Object, ByVal y As Object, ByRef A As Object) Dim ABC As MassPix = CType(x, MassPix)
End Sub
'<Custom additional code> Public Class MassPix Private x As Double Private y As Double Private S As Integer Private K As Integer Sub New(xu As Double, yv As Double, SZ As Integer, KL As Integer) x = Xu y = yv s = Sz k = Kl End Sub End Class '</Custom additional code> End Class
the file is attached
ANY HELP IS VERY MUCH APPRECIATED! …
l coarse mesh
Subdividing this mesh into strips of thin quads
Relaxing/Planarizing this mesh
Splitting and Unrolling
In this post I deal with the first 2 of these stages.
You can download the example definition here:
developable_strips_tutorial.gh
Drawing the initial mesh
To begin with we need a simple quad mesh. This can be modelled manually in Rhino, and only needs to use enough quads to give the topology and very rough form. No need to worry too much about the exact geometry or dimensions at this point, as we will refine and alter it as we go.
One very important thing that we do need to bear in mind though is that all internal vertices must have even valence (I covered this a bit in the earlier post here).
So for example, this is bad:
(because the highlighted vertex is surrounded by 5 faces)
While this is good (and can still be relaxed to the same shape):
(the top and bottom vertices have valence 8, and the vertices between the arms have valence 4)
With a little practice it should be possible to convert any mesh into one that meets this condition.
The reasons why we need this condition should become more clear in the later steps.
First subdivision
This is where we choose how many strips we want our final model to have, by applying a few rounds of subdivision using the Refine component (you could also use Weaverbird here):
Sorting the face directions
While quad meshes do not carry the same information about u/v directions as a NURBS surface, the individual faces do have a sort of direction given by their vertex ordering. However, these face directions are usually not consistently arranged, especially after subdivision.
The Kangaroo MeshDirection component attempts* to orient all the faces in a mesh so that they match with their neighbours.
For example, before sorting, if we draw a line from the midpoint of the first edge of each face to the midpt of its opposite edge, we might get something like this:
Whereas after sorting, we should get something like this:
*note that I say it attempts to orient the faces consistently. In some cases no valid solution exists, for instance if 3 or 5 faces meet around a vertex, hence the requirement mentioned at the start for even valence vertices.
Directional Subdivision
Now that we have consistent face directions across the mesh, we can apply further subdivision, but this time in one direction only. So we go from roughly square quads to thin rectangles. The idea is that as we apply higher levels of this directional subdivision, the final relaxed result goes towards something semi-discrete. A NURBS surface is fully continuous, and a mesh is fully discrete (made up of separate facets), while this strip model will be smooth in one direction and faceted in the other.
Go to part 2 for the next step of the process
…
y from the Rhino model and having the absorption coefficients of the materials that are entered into Pachyderm, why is it not possible to generate a reverberation time diagram, without the need to start any analysis?
MAPPING METHOD: When for example the mapping of the Strenght Index (G) is generated through the "create map" option, succesively I can´t generate any other energy criterion map, but I have to redo the simulation.
Is it a limitation of the software or am I wrong something?
MAPPING METHOD: I kindly wanted to ask what is the difference between minimum and detailed convergence and why the number of reflections order it takes into account for the simulation is not specified. The mapping method take care only of the Raytracing Method or the Image Source too?
MAPPING METHOD: Why is the mapping value that can be exported to Rhino not generated for all the calculation raster points, but maximal only for 100 values?
MAPPING METHOD: This method hasn't been implemented in Grasshopper yet, has it?
RAYTRACING METHOD (Pach:RT): I did a raytracing through the components of GH, using only the Pach_RT, and I had these curious results in terms of time:
RaysCount: 15.000, IS_Order:1 = 5min
RaysCount: 15.000, IS_Order:2 = 12min
RaysCount: 15.000, IS_Order:3 = 3min
RaysCount: 15.000, IS_Order:4 = 8min
RaysCount: 15.000, IS_Order:5 = 3min
Why a raytracing with only 2 order, is more and more extensive than the 3/4 and 5 order?
ANALYSIS RESULT: Would there be a way to export all the results of a simulation, as is done via Odeon, to a .txt list?
I apologize in advance for asking so many questions, I hope you can find the time to answer,
Yours sincerely from Müller-BBM…