Search
  • Sign In

Grasshopper

algorithmic modeling for Rhino

  • Home
    • Members
    • Listings
    • Ideas
  • View
    • All Images
    • Albums
    • Videos
    • Architecture Projects
    • Installations
    • Add-ons
  • Forums/Support
    • Current Discussions
  • My Page

Search Results - 广东11选5体育彩票开奖结累查询-『8TBH·COM』下载青蛙彩票网--2023年3月19日6时33分12秒.H5c2a3.rynzzgon4-cc

Topic: Grasshopper wishlist
he grouping of the sliders on the remote control panel. 4. Separate viewport(look at picture) 5. Cluster editor new wish My version grasshopper 0.8.0004 Best Regards,Valentin Kiev, Ukraine …
Added by Valentin at 12:41pm on October 13, 2010
Topic: The ultra mysterious perspective transformation
le] demo): 1. A transformation Matrix is a 4*4 collection of 16 values that "deform" 3d things according the values in the cells. The orthodox way is to deploy "cells" left to right and top to bottom. Rhino does the opposite (why?) hence we need the transpose method. 2. Since "translate" and "perspective" are "symmetrical" the transpose boolean toggle (within the C#) "flips" rows with columns ... so we get perspective or move. 3. When in perspective "mode" the vanishing points are computed internally within a min/max limit (per X/Y/Z axis) thus avoiding the usual havoc with "extreme" perspective angles (very common "glitz" in pretty much every CAD app - CATIA excluded). Vanishing points (and limits) are oriented with respect the pos/neg value of a given control slider. Note: slider values are percentages between min/max (mode: perspective) and/or actual values*100 (mode: move).  4.In order to start mastering the whole thing: don't change anything: just play with these 4 sliders selected: 5. The 123 sardine cans challenge: even with DeusExMachine = true (see inside C#: that one redirects the transformation per BrepFace and then joins the breps instead of applying it on a brep basis)... odd things (and/or invalid breps) occur ... thus what is required in order to make things working 100% ??. he, he  best, Lord of Darkness …
Added by peter fotiadis at 1:10am on July 14, 2015
Topic: Energy modeling of a cylindrical tall building with diagrid structural thermal mass
find my initial files, reports and errors (Running E+ simulation on the initial setup took hours and ended up with numerous errors)  I got a number of questions and would appreciate if you could answer them: 1- I have duplicated zones using "Honeybee Move". Is this the correct way to duplicate zones and if yes, should I rename all surfaces afterwards? I have renamed zones but not surfaces (The tower has 40 floors = 10 x typical group of 4 floors)  2- Should I convert all curvilinear objects to faceted geometry (or only windows and window-walls should be flat)? 3- In the next stage, I will add a second skin as the outer facade. Spiral structural elements (insulated thermal mass) are between interior and exterior areas, partly exposed to the sun. Should I split both interior and exterior zones to subtract these elements, and then solve the adjacencies? 4- To simplify the procedure and make it faster, I may simulate only 4 floors. Is it possible to force-hide the top roof and the lowest floor from the sun and other environmental factors? If yes, how? and do you know how much accuracy in the results would be lost in this case?  5- The outer skin would be all in glass, therefore in reality, the direct sun will affect the inner skin and the structural elements. I read somewhere that in HB+E+ simulations, direct sun turns to diffuse after passing the first layer of glass. Is that true? If yes, how can I make the inner skin exposed to direct sun in the simulation?  Thank you very much for your time. Best, Aryan    …
Added by Aryan Shahabian to Ladybug Tools at 3:07pm on June 4, 2016
Topic: Time complexity; C#
t sure about my decision.  Let's take a look at the method <createPopulation>:  public static List<List<Point3d>> createPopulation(List<Point3d> cP, int populationCount) {   List<List<Point3d>> Population = new List<List<Point3d>>();  // 1   for(int i = 0; i < populationCount; i++)  //2   {     List<Point3d> individual = cP.ToList();  // 3     Population.Add(individual);  // 4     System.Security.Cryptography.RNGCryptoServiceProvider provider = new System.Security.Cryptography.RNGCryptoServiceProvider();     int n = Population[i].Count;     while (n > 0)     {       byte[] box = new byte[1];       do provider.GetBytes(box);  // 5       while (!(box[0] < n * (Byte.MaxValue / n)));       int k = (box[0] % n);       n--;       Point3d value = Population[i][k];       Population[i][k] = Population[i][n];       Population[i][n] = value;     }   } In my algorithm there are lots of declarations like: List<Point3d> = new List<Point3d>(); or Random r = new Random(); these are constant time O(1) right?  i = 0 executes once; i < populationCount executes (N+1) times; i++ N times this executes M times? because every point needs to be added individually?  this one I don't really know; at msdn it is stated: If P:System.Collections.Generic.List`1.Count is less than P:System.Collections.Generic.List`1.Capacity, this method is an O(1) operation. If the capacity needs to be increased to accommodate the new element, this method becomes an O(n) operation, where n is P:System.Collections.Generic.List`1.Count. Shouldn't it be O(N), because I am adding every individual separately?  can't find any statements about this one either, I am guessing it should be of constant time O(1), because just one random number is being generated? …
Added by Tülin Altinkaynak at 4:17am on June 13, 2017
Topic: Repeat datatree with branches.
ext 1:Text {2} 0:Text 1:Text 2:Text Datatree after repeat: {0} 0:Text {1} 0:Text 1:Text {2} 0:Text 1:Text 2:Text {3} 0:Text {4} 0:Text 1:Text {5} 0:Text 1:Text 2:Text ... Thank you for help…
Added by Nils Heinemann at 9:00am on December 6, 2016
Comment on: Topic 'questions about Outdoor Microclimate Map'
hat, in accordance with this stable release, I have posted an updated version of this outdoor microclimate map example to the same link: http://hydrashare.github.io/hydra/viewer?owner=chriswmackey&fork=hydra_2&id=Outdoor_Microclimate_Map 1. You will see that, in the new file, I now have a single component that is able to turn a zone into a "ground zone" (similar to a plenum).  To clarify, both the plenum and ground zone components set all of the loads of the zone to 0 (no internal heat gain).  So this means that any of the characteristics of the default office program will be negated.  From your comments, Grasshope, it seems that you understand that the reason why I have a ground zone defined in this model is to account for the variation in ground surface temperatures that can occur with different objects casting shade onto the ground.  Therefore, the key property that defines this zone is the construction of the top surfaces, which is now changed based on a number that you input into the Ground Zone component. 2. You are correct in understanding the need for both "set zone construction" components in the old file.  Because of the zone's position below the Rhino model origin, the walls and floor are defined as underground surfaces and so I need the extra "Set EP Ground Construction" component.  Admittedly, the constructions on the underground surfaces should have a minimal effect on the modeling of the surface temperature above the zone (the roof construction is most important) but it made sense to me that results would be more accurate by setting all of the constructions of the zone to the ground material.  The current Ground Zone component ensures that all surfaces of the zone are assigned the ground material construction.  It also ensures that all walls and floor surfaces have a ground boundary condition regardless of where they sit in relation to the rhino model origin. 3. The distFromFlrOrSrf input can take either a number representing the distance from the floor of zones at which you would like to build a microclimate map or any surface on which you would like to see temperature variation.  So the input is flexible and allow you to both build micro-climate maps quickly or take a longer time building them with more customization.  For a visual of what you can do by inputting surfaces into this component, see this thermal animation of a section through a building that I designed for my thesis: https://www.youtube.com/watch?v=WJz1Eojph8E&list=PLruLh1AdY-Sj3ehUTSfKa1IHPSiuJU52A&index=3 For an example of a file using a numerical input for the microclimate map, see here: http://hydrashare.github.io/hydra/viewer?owner=chriswmackey&fork=hydra_2&id=Indoor_Microclimate_Map 4. The component has since been renamed (sometime in early July) to be called "Honeybee_Microclimate Map Analysis".  Originally, I developed the component to help me understand thermal diversity within zones but realized after building it out that the same method could be used to give deeper understandings of the outdoor environment.  So, at present, it can do both indoor and outdoor microclimate maps.  The only shortcoming at present is that the outdoor microclimate map uses EnergyPlus's oversimplified means of accounting for outdoor wind (a simple wind profile that does nto account for obstructions).  This shortcoming will be addressed once the first stable release of butterfly is out or I manage to work in components into LB that use the botlzman lattice particle collision method to approximate outdoor wind speeds.  Other than this shortcoming, you can trust that all results you are getting from these components are to a high degree of accuracy (meaning that all air temperature and MRT values are accurate). 5. Thanks for pointing this out.  This is a mistake in my labeling of the file names and I will fix this before the end of today.  When you use the workflow with the PMV recipe, these values are actual PMV/PPD values.  When you use the Adaptive comfort recipe, these values are "degrees from neutral temperature" and "Comfortable Or Not" values.  When you use the workflow with the UTCI recipe, these values are also "degrees from neutral temperature" and "Comfortable Or Not" values but they are different for UTCI than they are for the adaptive model.  Specifically, the neutral temperature and comfort zone for UTCI is defined to be the same as it is in this publication: https://www.ipma.pt/en/enciclopedia/amb.atmosfera/index.bioclima/index.html?page=utci.xml Hope this helps and let me know if you have any more questions, -Chris…
Added by Chris Mackey to Ladybug Tools at 8:32am on November 11, 2015
Topic: 3D FingerPrint - need to extract ridges and valleys?? Principal Curvatures Estimation
t file** - ply file with just x,y,z locations. I got it from a 3d scanner. Here is how first few lines of file looks like -    ply    format ascii 1.0    comment VCGLIB generated    element vertex 6183    property float x    property float y    property float z    end_header    -32.3271 -43.9859 11.5124    -32.0631 -43.983 11.4945    12.9266 -44.4913 28.2031    13.1701 -44.4918 28.2568    13.4138 -44.4892 28.2531    13.6581 -44.4834 28.1941    13.9012 -44.4851 28.2684    ...     ...      ... In case you need the data - please email me on **nisha.m234@gmail.com**. **Algorithm:** I am trying to find principal curvatures for extracting the ridges and valleys. The steps I am following is: 1. Take a point x 2. Find its k nearest neighbors. I used k from 3 to 20. 3. average the k nearest neighbors => gives (_x, _y, _z) 4. compute covariance matrix 5. Now I take eigen values and eigen vectors of this covariance matrix 6. I get u, v and n here from eigen vectors.    u is a vector corresponding to largest eigen value    v corresponding to 2nd largest    n is 3rd smallest vector corresponding to smallest eigen value 7. Then for transforming the point(x,y,z) I compute matrix T T =  [ui ]    [u ]    [x - _x]  [vi ] =  [v ]  x [y - _y]  [ni ]    [n ]    [z - _z] 8. for each i of the k nearest neighbors:<br>  [ n1 ]   [u1*u1  u1*v1  v1*v1] [ a ]<br>  [ n2 ] = [u2*u2  u2*v2  v2*v2] [ b ] <br>  [... ]   [ ...    ...    ... ] [ c ] <br>  [ nk ]   [uk*uk  uk*vk  vk*vk]<br>  Solve this for a, b and c with least squares 9. this equations will give me a,b,c 10. now I compute eigen values of matrix     [a b      b a ] 11. This will give me 2 eigen values. one is Kmin and another Kmax. **My Problem:** The output is no where close to finding the correct Ridges and Valleys. I am totally Stuck and frustrated. I am not sure where exactly I am getting it wrong. I think the normal's are not computed correctly. But I am not sure. I am very new to graphics programming and so this maths, normals, shaders go way above my head. Any help will be appreciated. **PLEASE PLEASE HELP!!** **Resources:** I am using Visual Studio 2010 + Eigen Library + ANN Library. **Other Options used** I tried using MeshLab. I used ball pivoting triangles remeshing in MeshLab and then applied the polkadot3d shader. If correctly identifies the ridges and valleys. But I am not able to  code it. **My Function:** //the function outputs to ply file        void getEigen()        {        int nPts; // actual number of data points        ANNpointArray dataPts; // data points        ANNpoint queryPt; // query point        ANNidxArray nnIdx;// near neighbor indices        ANNdistArray dists; // near neighbor distances        ANNkd_tree* kdTree; // search structure        //for k = 25 and esp = 2, seems to got few ridges        queryPt = annAllocPt(dim);                                      // allocate query point        dataPts = annAllocPts(maxPts, dim);                     // allocate data points        nnIdx = new ANNidx[k];                                          // allocate near neigh indices        dists = new ANNdist[k];                                         // allocate near neighbor dists        nPts = 0;                                                                       // read data points        ifstream dataStream;        dataStream.open(inputFile, ios::in);// open data file        dataIn = &dataStream;        ifstream queryStream;        queryStream.open("input/query. pts", ios::in);// open data file        queryIn = &queryStream;        while (nPts < maxPts && readPt(*dataIn, dataPts[nPts])) nPts++;        kdTree = new ANNkd_tree(                                        // build search structure                                        dataPts,                                        // the data points                                        nPts,                                           // number of points                                        dim);                                           // dimension of space        while (readPt(*queryIn, queryPt))                       // read query points        {                kdTree->annkSearch(                                             // search                                queryPt,                                                // query point                                k,                                                              // number of near neighbors                                nnIdx,                                                  // nearest neighbors (returned)                                dists,                                                  // distance (returned)                                eps);                                                   // error bound                double x = queryPt[0];                double y = queryPt[1];                double z = queryPt[2];                double _x = 0.0;                double _y = 0.0;                double _z = 0.0;                #pragma region Compute covariance matrix                for (int i = 0; i < k; i++)                {                        _x += dataPts[nnIdx[i]][0];                        _y += dataPts[nnIdx[i]][1];                        _z += dataPts[nnIdx[i]][2];                }                _x = _x/k; _y = _y/k; _z = _z/k;                double A[3][3] = {0,0,0,0,0,0,0,0,0};                for (int i = 0; i < k; i++)                {                        double X = dataPts[nnIdx[i]][0];                        double Y = dataPts[nnIdx[i]][1];                        double Z = dataPts[nnIdx[i]][2];                        A[0][0] += (X-_x) * (X-_x);                        A[0][1] += (X-_x) * (Y-_y);                        A[0][2] += (X-_x) * (Z-_z);                        A[1][0] += (Y-_y) * (X-_x);                        A[1][1] += (Y-_y) * (Y-_y);                        A[1][2] += (Y-_y) * (Z-_z);                        A[2][0] += (Z-_z) * (X-_x);                        A[2][1] += (Z-_z) * (Y-_y);                        A[2][2] += (Z-_z) * (Z-_z);                }                MatrixXd C(3,3);                C <<A[0][0]/k, A[0][1]/k, A[0][2]/k,                        A[1][0]/k, A[1][1]/k, A[1][2]/k,                        A[2][0]/k, A[2][1]/k, A[2][2]/k;                #pragma endregion                EigenSolver<MatrixXd> es(C);                MatrixXd Eval = es.eigenvalues().real().asDiagonal();                MatrixXd Evec = es.eigenvectors().real();                MatrixXd u,v,n;                double a = Eval.row(0).col(0).value();                double b = Eval.row(1).col(1).value();                double c = Eval.row(2).col(2).value();                #pragma region SET U V N                if(a>b && a>c)                {                        u = Evec.row(0);                        if(b>c)                        { v = Eval.row(1); n = Eval.row(2);}                        else                        { v = Eval.row(2); n = Eval.row(1);}                }                else                if(b>a && b>c)                {                        u = Evec.row(1);                        if(a>c)                        { v = Eval.row(0); n = Eval.row(2);}                        else                        { v = Eval.row(2); n = Eval.row(0);}                }                else                {                        u = Eval.row(2);                        if(a>b)                        { v = Eval.row(0); n = Eval.row(1);}                        else                        { v = Eval.row(1); n = Eval.row(0);}                }                #pragma endregion                MatrixXd O(3,3);                O <<u,                        v,                        n;                MatrixXd UV(k,3);                VectorXd N(k,1);                for( int i=0; i<k; i++)                {                        double x = dataPts[nnIdx[i]][0];;                        double y = dataPts[nnIdx[i]][1];;                        double z = dataPts[nnIdx[i]][2];;                        MatrixXd X(3,1);                        X << x-_x,                                 y-_y,                                 z-_z;                        MatrixXd T = O * X;                        double ui = T.row(0).col(0).value();                        double vi = T.row(1).col(0).value();                        double ni = T.row(2).col(0).value();                        UV.row(i) << ui * ui, ui * vi, vi * vi;                        N.row(i) << ni;                }                Vector3d S = UV.colPivHouseholderQr().solve(N);                MatrixXd II(2,2);                II << S.row(0).value(), S.row(1).value(),                          S.row(1).value(), S.row(2).value();                EigenSolver<MatrixXd> es2(II);                MatrixXd Eval2 = es2.eigenvalues().real().asDiagonal();                MatrixXd Evec2 = es2.eigenvectors().real();                double kmin, kmax;                if(Eval2.row(0).col(0).value() < Eval2.row(1).col(1).value())                {                        kmin = Eval2.row(0).col(0).value();                        kmax = Eval2.row(1).col(1).value();                }                else                {                        kmax = Eval2.row(0).col(0).value();                        kmin = Eval2.row(1).col(1).value();                }                double thresh = 0.0020078;                if (kmin < thresh && kmax > thresh )                        cout    << x << " " << y << " " << z << " "                                        << 255 << " " << 0 << " " << 0                                        << endl;                else                        cout    << x << " " << y << " " << z << " "                                        << 255 << " " << 255 << " " << 255                                        << endl;        }        delete [] nnIdx;    delete [] dists;    delete kdTree;        annClose(); } Thanks, NISHA…
Added by Nisha M at 10:30am on June 20, 2011
Topic: DigitalMed workshop: mapping, parametric design, digital fabrication.
ly 26-27-28-29 (digital fabrication)   The third edition of digitalMed Workshop is structured as a design laboratory. Participants will learn the challenging process of producing ideas, projects and research analysis that are to be developed through specific software and concepts that emerge through the use of mapping, parametric design and digital fabrication.   The workshop will take place in the city of Salerno (Italy) and it will last 11 days structured into 3 intensive weekends: July 13-14-15 (mapping); July 19-20-21-22 (parametric design); July 26-27-28-29 (digital fabrication).     Goals and Objectives: We aim to make clear the theoretical and technical knowledge in the approach to parametric and generative design and digital fabrication. (From collection and data management, to the manner in which these inform the geometries, to the fabrication of prototypes.) Participants will also have the opportunity to practice the new knowledge gained in the design laboratory through project work.   Project Theme: "Urban Field" Identify, study and analyze the system of public spaces in the urban area of the city of Salerno. Connection, mutation, generation and evolution are the themes to be followed in project work.   Brief Description of Topics: - Mapping. Our reality, in all its forms, has studied through concepts of the theory of Complex Systems. The techniques that will be used to study events and places of reality, will work for the management, manipulation and visualization of data and information. These will form the basis for project management and driven geometry, conducted during the second phase of the workshop. - Parametric Design. Introduction to Rhino* and Grasshopper. Specifically, we will explain the concepts with which to work with the software of parametric design and how they function. Through these tools, we will arrive at the definition of systems of mathematical and / or geometrical relationships that are able to generate and govern patterns, shapes and objects that will inform the final design. - Digital Fabrication. In this phase, participants of the workshop are organized into working groups. Participants have access to  materials and conceptual apparatus that will take them directly to the fabrication of the geometries of the project, with the use of software CAD / CAM interface  and the use of machines for the  digital fabrication.   The  DigitalMed workshop is organized by Nomad AREA (Academy of Research & Training in topics of Contemporary Architecture), in collaboration with the City of Salerno,  the Order of Architects Province of Salerno and the National Institute of Architecture In / Arch - Campania.   Interested parties may download the Notice of Competition at the address www.digitalmedworkshop.com and fill the pre-registration no later than July 10th 2012.   PRESS OFFICE Dr. Francesca Luciano 328 61 20 830 fra_luciano@libero.it   For information or subscriptions: e-mail: info@digitalmedworkshop.com - tel: 089 463126 - 3391542980 …
Added by Francesca Luciano at 4:09am on June 11, 2012
Blog Post: Cordyceps

So I've been working on a more haptic way of designing, as I felt a necessity…

Added by Zakaria Djebbara at 2:07am on January 10, 2017
Comment on: Topic 'Electric lighting components for Honeybee'
mething? I think it would be very useful to have a mapping of light intensity over the field of view of the used camera, and possibly and option to overlay it on the luminance mapping. It would in a very visual way provide information about contrast and glare. Doesn't the falsecolor option already do that for luminance mappings? If not can you post an image/screenshot of such a mapping from Dialux/AGI32 or any other software. 4. It's just a shoebox type simulation. 11x11 luminaires pointing down to simple materials. The default elapsed time was 3m40s. I have found the _RadParameters component meanwhile, and got it down to 0m30s. I have noticed that the simulation doesn't tax multiple cpu threads completely, most of the time cpu is at 25% during execution. The under-utlization of CPUs is a known issue with Radiance (the calculation engine) on Windows based systems. Unfortunately there isn't much that can be done about it at the moment. 5. Is it possible to map different degrees of translucency, diffuse color, absorptance, reflectance, etc..., by means of a bitmap image, expression, or other? 6. There is a feature that I consider absolutely necessary (and I haven't found it yet), which is the emitting surface feature, with the ability to stipulate homogeneous intensity with luminance values (in cd/m^2) or flux; and by mapped distribution of intensities or luminances (in cd or cd/m^2). By emitting surface I don't mean just a flat rectangular plane, such as an area light. It would be absolutely amazing! to perform photometric analysis on irregular and convoluted shapes and the light falling on neighbouring surfaces. 3DS Max with MentalRay provides similar functionality, but without the power of GH + HB. In the image below, the HB logo is assigned as a texture to a glass which then creates a pattern of that on the wall when daylight falls on it. ln the image below the light from the Batman logo illumninates the scene. The images above were Rendered with Radiance. While these things are possible with Radiance, and therefore HB, the reason why they aren't incorporated into the code is that these effects are not "physically based" and are not rooted in reality. Radiance is arguably the most intensively tested and validated lighting simulation software in the world. However, once we start applying such "magic" to it, the results from it are no longer reliable and therefore no different from other photorealistic engines such as V-ray, Mental-Ray etc. …
Added by Sarith Subramaniam to Ladybug Tools at 7:13pm on January 6, 2017
  • 1
  • ...
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • ...
  • 206

About


McNeel
Scott Davidson created this Ning Network.

Welcome to
Grasshopper

Sign In

Translate

Search

Photos

  • Twisted Tower

    Twisted Tower

    by Parametric House 0 Comments 0 Likes

  • Parametric Truss

    Parametric Truss

    by Parametric House 0 Comments 1 Like

  • Parametric Facade

    Parametric Facade

    by Parametric House 0 Comments 1 Like

  • Parametric Paneling

    Parametric Paneling

    by Parametric House 0 Comments 1 Like

  • Parametric Vase

    Parametric Vase

    by Parametric House 0 Comments 0 Likes

  • Add Photos
  • View All
  • Facebook

Videos

  • Grasshopper Tutorial (Parametric Tower)

    Grasshopper Tutorial (Parametric Tower)

    Added by Parametric House 0 Comments 0 Likes

  • Rhino Grasshopper Tutorial For Beginners (Parametric Truss)

    Rhino Grasshopper Tutorial For Beginners (Parametric Truss)

    Added by Parametric House 0 Comments 1 Like

  • Grasshopper Tutorial (Parametric Facade)

    Grasshopper Tutorial (Parametric Facade)

    Added by Parametric House 0 Comments 1 Like

  • Grasshopper Tutorial (Parametric Paneling)

    Grasshopper Tutorial (Parametric Paneling)

    Added by Parametric House 0 Comments 1 Like

  • Parametric Vase - Grasshopper Python Script

    Parametric Vase - Grasshopper Python Script

    Added by Parametric House 0 Comments 0 Likes

  • Grasshopper Galapagos Tutorial

    Grasshopper Galapagos Tutorial

    Added by Parametric House 0 Comments 1 Like

  • Add Videos
  • View All
  • Facebook

© 2026   Created by Scott Davidson.   Powered by Website builder | Create website | Ning.com

Badges  |  Report an Issue  |  Terms of Service