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
n floorplate (say, 9 studios, 6 x 1-beds, 7 x 2-beds...).
My input is a text file which contains all possible combinations of unit types, up to a given size (basically, all the possible unit combinations up to a floorplate of 'x' square metres). The idea to save them into a text file was because of the sheer amount of combinations there were (33M), which took three days to compute but hopefully I can now use for a variety of projects (because the unit types don't change generally between projects, just the unit mixes).
Anyway, that's a small tangent. The point is I am reading through this index, finding good combinations for one project in particular ('good' being that it fits in the floorplate, with a decent floorplate efficiency).
The issue is that most of the log file isn't appropriate, only a very small percentage of combinations in the index are good for each floorplate (where each floorplate is represented by a separate path, by the way), hence me wanting to record only the best. I guess that is an optimisation, but I can't think of a better way of 'tunneling' through to a solution, to use your analogy. More than open to ideas, by the way!
The truth is I feel I am very close, if only I could code. In one hand I have the data recorder which sorts and keeps good values (Pieter's script), and in the other I have this one which keeps the paths separate....
…
r your need.. bravo my friend!
2.Hahaha career first, woman later.
3.maybe it is because my country has yet to use the softwares you mentioned, I am pretty sure they are used by engineer, since my practice is only architectural work, we always collaborate with the engineer to get the job done (by collaborate, I mean passing on the job to the engineer, and then we just let them handle all the stuff, the sad news is architect and designers doesnt get paid much to deal with those)
in contrast with your software, me and my team use Rhino,GH,3dsmax, and Zbrush-- these are standard package you got after u graduate from any arch.college. the level of detail I produce in my modelling is not as "heavy" as yours because the client I face every week only worries about the appearance of the building, as well as convenience in terms of planning, efficiency, and cost control over the design.
I am surprised you don't use REVIT or ArchiCAD? they are the standard for BIM documentation.
4.well, subdiv modeling is one of my fave. (That is why Tspline is my fave tool in rhino, to sketch out the model that I want, however it depends on the type of geometry you are after, for "solid modelling" I prefer Subdiv modelling rather than standard NURBS )
5. no comment for that hahaha
6.I disagree, I think Rhino needs a TOP rendering software as part of rhino system itself. to make it at least on par with 3dsmax. rhino isn't built for restrictive use like CATIA, so its purpose is for "MODELLING and VISUALIZATION". at the moment we only see the "MODELLING" part.
7.+1 for this
8.I have to agree with that. there is no way we can incorporate BIM in Rhino. also it is not widely accepted to somehow have BIM file in Rhino format. but...
9. in the future it might be, because if you compared rhino 4 to rhino 5 there has been a major breakthrough, who knows what will happen in rhino 6 or 7.
10.I saw a post the other day,David said he intended GH to be algorimtic modelling instead of parametric, and GH is like a swiss army knife, it has thousands of tools to do general job, but it requires 3rd party member (we call it add-on) to extend its uses. Id prefer GH to have much broader function to encourage people to expand its wings
PS= are u talking about augmented reality? :)
Peace!…
d of interpenetrating surfaces somewhere:
Now all links (except a possible single ball on the very end of odd numbered ball series) are four balls long, including the jostled ones. Without that step, those items simply don't appear in the output, leaving way too big of gaps to ignore, eventually leaving huge gaps at later stages of segment doubling:
So if I turn the jostling multiplication factor way down it should work imperceptibly:
Ta-dah! The jostling strategy WORKS! Granted, only in this special case where I know I'm dealing with adjacent pairs of worms along a curve, not generic objects arranged in space by some artist.
Now I just need to wrap the multiple Python script components I'm stringing together into one script.
How long does the full 2400 balls take, finally? It took 12 Python scripts that merge pairs, to achieve this breakdown: 2400 -> 1200 -> 600 -> 300 -> 150 -> 75 -> 38 -> 19 -> 9 -> 5 -> 3 -> 2 -> 1. Time was 2 minutes 50 seconds, so there is some extra struggle for 2X as many balls as 1200 that took 1 minute 20 seconds, but only ten more seconds.
…
Added by Nik Willmore at 9:06pm on February 17, 2016
rom a few pieces until all of the pieces are in place. You could also, theoretically, modify the form of the base, high, etc.
To do this I started making three pieces (all triangular) of different sizes... and then I stablished that there is going to be a bigger concentration of bigger pieces on the first third of the building, a bigger concentration of medium pieces on the second third and a bigger concentration of small pieces on the last third. I did this by rotating the pieces a number of times accordingly to a percentage.. the funny thing is that it works most of the times, but it doesn't work if the base of the building has 3, 8, 12, 18 or 20 sides (20 being the higher number on the number slider).. maybe there is a way to solve this with lists that I am not using????
My second problem is that I want to rotate each floor of the building separetly using a range... the thing is, I cannot make it work, because it rotates each triangle and not the whole floor... maybe there is a way of making groups or changing the list definition, but I'm not getting there.... I tried working with planes, but it is even more difficult to make the whole thing work...
I'm attaching the grasshopper documment and a couple of pictures so you can get my idea....…
basis FE model to get some stresses to evaluate and then I remap these stresses into a thickness within a certain domain. These values are then used as input to a new FE model.
I look at a cantilever beam (8 x 3 m) which has uniformly distributed loads on top and bottom and all DOF's are fixed in the end (left side).
I get the exact opposite result as I would expect. See the result below.
I've tried to switch the domain input of the thickness which kind of gives a result more likely to what I would expect but still does some weird thing at the end of the cantilever beam. Also I don't really see the logic in doing that.
I've also tried the region boundary support instead but with no luck.
Can anyone see what I'm doing wrong?
Thank you very much!…
control point edit from a sphere.
Since it is the first time I try Exoskeleton, I checked the lists of input geometry in the exemple and got the same in my definition, but the component turned red, giving this error message:
1. Solution exception:Index was outside the bounds of the array.
For the Radius at Start and End values, I tried using the same principle applied inside the Exo-vase exemple, which links the radius to the Z values, remapping them from .3 to 8.
Is there the problem or elsewhere?
Could someone give me a hint about what I am missing ? Many thanks!!!
Below a screenshot., and I attach the definition.
…
mainly grasshopper. (If it were just Rhino it perhaps would have been easier for me). I've been working on it for a while now and I unfortunately am a bit stuck.
Below are some of my concerns:
1) I know the theory of what I'm suppose to do which is to have the rectangular base and scale it then array it up. However I noticed that the thickness of the each lath and support varies. There are 25 laths in all and from the structure diagram I have gathered that there are basically 4 groups of the same thickness from the base going up its the first 9, then 7, then 5 and then the top 3. I just can't seem to figure out how to vary the thickness. I would assume the attached lath and support definition diagrams would help but unfortunately I don't know how to read it. I've tried some formulas which didn't exactly work but I still included them in the file.
2) I also need to figure out how to create the hole in the structure which is the entrance. I know in Rhino I could just Boolean it out but is there a way to do it in grasshopper?
3) I also need helping figuring out the definition for putting the vertical supports in between each row. The diagram says something fancy about "Testing acceptable constraints in flexion and in shear, we find an acceptable eccentricity that varies with each row." Ok maybe it wasn't so fancy but I have no clue how to do that with grasshopper!
4) My lecturer wants a Structure Simulation which I'm going to assume is what number 3 is all about?
I've attached my progress so far and would appreciate any help possible. I'd prefer if anyone could guide me using basic things (without any fancy plug-ins unless it's absolutely necessary).
However, any help is appreciated! Thank you so much in advance.
Cheers!
Jo
…
lets say the setup at some time is like this:
min = 0.0
max = 10.0
val = 3.0
Then the dynamic domain changes to:
min = 5.0
max = 10.0
What happens to val? Does it stay as close to 3 as possible (i.e. 5.0)? Does it get remapped to the same percentage (i.e. 6.5)?
--------
Or let's assume that due to some fluke the dynamic bounds are identical:
min = 6.0
max = 6.0
Now at least it's obvious what should happen to val as there's only one value possible, but what should happen after the domain becomes valid again? Should I store the last valid value or percentage and restore it?
--------
What about rounding in case of integer sliders?
min = 0
max = 10
val = 3
When the dynamic domain is slowly adjusted one integer at a time until it reaches:
min = 8
max = 10
how do we prevent the massive amount of intermediate rounding that goes on which may push the final value percentage way off the original?
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
Added by David Rutten at 6:41am on January 28, 2011
ow much space that combination would take (according to London Design Guidelines). So for the example above, a 3/6/9/2 combination takes up 1219 square metres.
It's true I am storing very weird combinations of units (35/0/0/0 for example, a residential block made only of studios...), but a priori I don't know if it might come in handy one day!
Once I have that calculation done, which doesn't apply to any specific project, I "evaluate" it for a specific project. I have various floorplates of different sizes, so I go through my index looking for good matches (those which are close enough in area) - and here is where I need a recorder, but one that traps only the good results, and only gets better as it reads through the file.
After that, I lay the units onto the floorplate and evaluate how good the solutions I have found are (the usual suspects; orientation, sun exposure, cross-ventilation, etc.). I might need Galapagos for this, but the fact remains I need to cull a huge pool of 33M possible combinations into (say) 100. Hence my need for a recorder.
It would be great to read your thesis actually! If you would be so kind as to share, always looking for different ways of approaching the solution.…