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…
Singapore
DESCRIPTION : Two seemingly contrasting ideas combined will turn into something remarkably new. This resulted in the idea of Digital Craftsmanship – connecting the digital technology with artisans’ craftsmanship. Singapore is uniquely positioned to benefit from both – the latest technology in digital fabrication, as well as the beautiful and rich culture of ASEAN craftsmanship in countries like Indonesia, Thailand and Vietnam. The NUS digital fabrication in architecture studio introduces advanced design to fabrication flow, such as 3D modeling, simulation, digital fabrication and physical assembly and testing. We discover existence of data flow distinguishes digital and conventional craftsmanship, prolonging the interface between human and object. The result is very encouraging –the Digital Craftsmanship approach could lead innovative yet regionally relevant contemporary architectural design, complex yet controlled functional geometry and aesthetics. We hope this exhibition could raise our awareness about preserving the precious wisdom of traditional craftsmanship alongside with advanced fabrication technologies in architecture.
OPENING : 24 August 2012, 7pm – 9pm, RSVP to Yi Hui (dfabstudio@gmail.com) EXHIBITION : 25 – 28 August 2012 (10 am – 9 pm, daily, free admission) VENUE : Promenade, Level 8, National Library Building, 100 Victoria Street, Singapore
PROJECT TEAM : Shinya Okuda (Studio Tutor), Liane Ee Rulian, Hiral Ashvin Desai, Lee Teng Teng Cheryl, Ian Wong Hengjie, Teo Lin Lin, Xu Xiaoqi, Liu Zhichao, Diptarshi Dev, Tan Zi Hua, Teh Yi Hui, Joshua Loh.
Organized by Digital Fabrication in Architecture Studio, NUS.…
could represent at least three immaterial substances: his subconscious, the negative mass surrounding the sculpture and a parallel world where material is forbidden.
Has Architects' engagement with virtual space meant a vanishing sensitivity towards material and other immaterial realms?
The AA Rome Visiting School 10 day workshop encourages the observation of material elements and their use in the design of architecture featuring subconscious experiences, spatial voids and virtual communities. Students will investigate modern materials and their digital fabrication by direct experience. They will work with algorithms and sensors able to recognise and respond to human feelings and attitudes. Students will feed novel expressions of void spaces into the Roman tradition featuring examples like the ancient catacombs and the Nolli map. Through augmented reality design the projects will open a window into an digital virtual world.
By the end of the workshop students will unveil their interpretation of the material/immaterial form hidden in the real matter.
Applications
1) You can make an application by completing the online application found under ‘Links and Downloads’ on the AA Visiting School page. If you are not able to make an online application, email visitingschool@aaschool.ac.uk for instructions to pay by bank transfer.
2) Once you complete the online application and make a full payment, you are registered to the programme. A CV or a portfolio is not required.
All participants travelling from abroad are responsible for securing any visa required, and are advised to contact their home embassy early. After payment of fees, the AA School can provide a letter confirming participation in the workshop.
Fees
The AA Visiting School requires a fee of £695 per participant, which includes a £60 Visiting membership fee.
Fees do not include flights or accommodation, but accommodation options can be advised. Students need to bring their own laptops, digital equipment and model making tools. Please ensure this equipment is covered by your own insurance as the AA takes no responsibility for items lost or stolen at the workshop.
Eligibility
The workshop is open to current architecture and design students, phd candidates and young professionals. Software Requirements: basic knowledge of Rhinoceros or other 3D modeling software.
Venue of workshop: Galleria “Come Se”, via dei Bruzi 4, 00185 Roma, Italy
…
giornata inaugurale sarà dedicata alla free-lecture introduttiva finalizzata alla realizzazione di un modello d'architettura complesso attraverso l'utilizzo di comandi e tecniche avanzate di rappresentazione con Grasshopper (plug-in parametrica di Rhinoceros) e 3dsMax. Sarà illustrato inoltre il potenziale di V-ray per 3dsMax realizzando un rendering concettuale. Durante il mini-corso dell' openDAY verranno mostrate le caratteristiche e le potenzialità degli strumenti per far luce sui nuovi valori assunti dalla modellazione 3D. La modellazione 3D sta interessando un pubblico sempre più vasto inserendosi in una nuova fase di ampia disponibilità per conoscenze, software, hardware di prototipazione e modelli. Pur mantenendo tutti i suoi valori già noti la questione si è talmente ampliata fino ad interessare norme giuridiche (diritti sui modelli ,concorrenza con offerte di servizi apparentemente simili, informazioni deformate e onfusione nei media) Makers University[http://www.makersuniversity.com], in collaborazione con parametricart, vi propone un punto di vista ampio e sintetico su queste tematiche.
Al termine della free-lecture, sarà illustrata l'offerta formativa [CLICCA QUI] di parametricart riferita ai corsi che si terranno nei mesi di Gennaio e Febbraio 2013 inseriti all'interno della più ampia programmazione della Makers University. SONO PREVISTE TARIFFE PROMOZIONALI PER COLORO CHE SI ISCRIVERANNO AI CORSI durante l'OpenDAY.
La lezione e la presentazione si terranno nel nuovo spazio co-working il PEDONE.
PROGRAMMAZIONE
- I temi della Makers University [Leo Sorge];
- Modellazione della parametricTower (concept di architettura complessa) utilizzando Grasshopper, applicativo per la modellazione parametrica [VIDEO] [Michele Calvano];
- Modellazione di una copertura reticolare 3D a completamento della parametricTower con 3dsMax utilizzando tecniche di modellazione mesh complesse [Wissam Wahbeh];
- Rendering con V-ray per 3dsMax illustrando la nuova interfaccia nodale [Wissam Wahbeh].
- Question Time per chiarimenti sugli argomenti illustrati.
COME
L'openDAY sarà aperto a tutti gli interessati,completamente gratuito e sarà replicato in tre sessioni di uguali contenuti organizzate nei seguenti orari:
Sessione [1] 11,30 - 13,30
Sessione [2] 15,30 - 17,30
Sessione [3] 17,30 - 19,30
Per necessità di organizzazione è importante la prenotazione all'evento utilizzando il form in fondo alla pagina specificando nella stringa apposita, il nome dell'evento e la sessione (es. open day sessione 1) oltre agli altri dati richiesti.…
eroberfläche des Grasshopper Programms
Funktionsprinzip eines grafischen Algorithmus-Editors (Datenfluss)
Unterscheidung von Parametern (Datentypen) und Komponenten (Datenverarbeitung)
Erzeugung, Bearbeitung und Analyse von Geometrie-Typen: Punkte, Vektoren, Linien, Kurven, Flächen (surfaces, brep) und Netze (meshes)
Strukturierung der Daten anhand von Listen und Bäumen
unterschiedliche Verknüpfungsmöglichkeiten von Parametern (data matching)
praxisnahe Grundlagen der Geometrie und Vektorrechnung für generatives Design
effizienter Aufbau von parametrischen Modellen anhand Übungsaufgaben
Auszug von Daten aus Modellen für die Fertigung; Daten aus Tabellen (Excel, CSV) importieren, exportieren
Einsatz von benutzerdefinierten Komponenten (custom components)
Vorkenntnisse: Rhinoceros3d Benutzeroberfläche der Software: Englisch Unterrichtssprache: Deutsch
Details und Anmeldung:
www.vhs-sha.de
click: SUCHE
Kurstitel: GRASSHOPPER
(auch: Kurstitel: RHINO)
Trainer: Peter Mehrtens
Kursdauer: 3 Tage / 8 Stunden pro Tag
Donnerstag, 19.07.2012, 08:00-17:00 Uhr Freitag, 20.07.2012, 08:00-17:00 Uhr Samstag, 21.07.2012, 08:00-17:00 Uhr Ort: Volkshochschule Schwäbisch Hall, im Haus der Bildung
Teilnahmegebühr: 299,00 € Teilnehmerzahl: 5-10 Personen
…
0.1 Webinar introduction0.2 Installation of Ladybug for Grasshopper (+Rhino)0.3 Getting started with Ladybug for Grasshopper (+Rhino)0.4 Introduction to Environmental Design Analysis - process and methodology_STEP 1 CLIMATE ANALYSIS (NO MODEL)1.0 Introduction to Climate Analysis1.1 Finding and importing weather data file1.2 Sun Path1.3 Temperature chart1.4 Humidity chart1.5 Wind Rose1.6 Comfort Analysis based on weather data1.7 Psychrometric Chart1.8 Bioclimactic Chart1.9 Customizing Analysis Period and Charts_STEP 2A ANALYSIS OF EXISTING URBAN SPACES (WITH MODEL)2a.0 Introduction to Analysis of existing Urban Spaces2a.1 Import Context models from Rhino2a.2 Radiation Rose2a.3 Solar Fan / Envelope_STEP 2B ANALYSIS OF NEW URBAN SPACES / DEVELOPMENT (WITH MODEL)2b.0 Introduction to Analysis of new Urban Spaces2b.1 Import new Urban Buildings and/or Elements from Rhino2b.2 Parametric Grasshopper models 2b.3 Radiation Rose-------------------DANIEL NIELSENThe Danish architect Daniel Nielsen has a broad experience with Architectural Sustainability and the integration of parametric 3D modeling and simulation tools into the process. He have worked on projects at various scales - from buildings to planning, and have been involved in research and education programs at The Royal Danish Academy of Fine Arts and Technical University of Denmark.…
se presentarán una pieza cortada con láser o CNC.Extracto de TemarioIntroducción Fundamentos Grasshopper Image Sampler V-Ray Interiores Que es es CNCFundamentos Interfase Visualización - Grasshopper V-Ray Exteriores Arboles de datos Corte, Laser e impresión 3dTeoria de Curvas Componentes y parametros Listas de datos V-Ray Materiales Clusters ToleranciasTranspocición Vectores y reticulas -Atractores Series y rangos Teoria de Superficies Conexiones Estrategias de modelado para manufacturaSimetrias Transpocisión parametrica Formulas Panelizacion Teoría de Ensambles Teoría de archivos para corteAtractores Cull Random Información del taller:Fechas: del 8 al 26 de Junio de 2015Sesiones: 8 de 3 hrs y presentación finalDuración: 27 hrs.Días: Lunes,Miércoles y ViernesHorario: de 19:00 a 22:00 hrsPrecio : $4,500 Apartado: $2,000Pago oportuno (antes del 1 de Junio): $3,500PAQUETESTaller y Rhino 5.0 Educativa: $6,500.00 Taller y Rhino 5.0 Comercial: $21,000.00 *Sólo hacemos reembolso en cancelaciones con un mínimo de 15 días previos al taller.info@dimensiontallerdigital.comtel oficina (55) 50160634…
essarily architectural. As you can guess from the tone of my previous response, I finished with school and had a hard time finding a job that focused on the technologies I delt with all through undergrad and grad. During grad school I was working with ASGvis (the makers of V-Ray) so I got exposed to the software side of things both on the support/management side and the development side. Now I'm off on my own doing development projects like RhinoHair, a few others, and some custom plugins for clients. Not necessarily what I thought I'd be doing after grad school, but I'm certainly enjoying it more than the "standard" practice of architecture.
I definitely understand "creating" a program. I did both my undergrad and grad at Catholic U here in DC, and although there was some ground work laid in regards to fabrication, I was one of only two or three students spearheading a lot of the scripting/GH/parametric stuff and some of the topics that go along with them (algorithmic design, adaptive systems, advanced geometry). One thing that was incredibly helpful for me was to pair up with the most advanced and forward thinking professor(s) that you can and take their studios, electives, and/or help out with their research. I was lucky enough to pair with a professor who had been at MIT and really encouraged me to explore my interests and sharpen my technicial skills.
It might also be a good idea to stick your head in some other departments, probably the math and engineering ones, or even biology and economics if there are some forward thinking professors. Talk to some people and get a different perspective on things. When I went to the ACADIA conference in 2008 it really opened my eyes to some of the potential influence from those different arenas.
Fabrication wise, I'd really try to focus more on milling (3 axis is fairly standard, 5 axis if you can get access) than 3d printing. Printing is a lot of fun, but ultimately we're not printing buildings (yet), so some of the milling processes will be much more valuble. If your school doesn't have those kind of facilities on campus (either in the Arch dept or engineering or something), then contact a local fabricator and see if you can work together somehow or someway. You'd be surprised and how many fabricators are interested in talking to architects.…
Added by Damien Alomar at 3:13pm on February 8, 2010
, and it was only devised for triangular faces:
I could track all my edge labels (via the neighboring cell discussion) but from that info (the pesky tree) I needed unique face pairs to output a single crease angle.
Now (with your scripted component) I have the crease angles. All the 3D text is temporary for trouble shooting. This is 3 faces from a dodecaheadron:
So now I have the remaining hurdle as to whether the proper crease angle is the GH angle or the GH reflex angle.
The funny thing with the "pesky tree" is the meaning of the pattern doesn't become apparent until it's more complicated than the simpler excerpt from above.
I think I could make the scripted component a little cleaner if I use some nested loops instead of your search and remove method, but that may take me a while.
But it all the fun comes from this guy:
…
ed many inverted normals, holes, bad edges, intersecting mesh faces etc and couldn't really find a good fix for all the issues.
3. I imported the file again and tried the mesh offset to thicken it just by 1mm. It gets a reasonable result but still has errors where the offset creates intersecting mesh faces. The result looks better than the Rhino offset mesh and looks like it might actually stand on a table. It was a 53Mb STL file!
Unfortunately I do not have the Objet software on my laptop otherwise I would have tried to prep it for 3d printing but I have a feeling any slicing software will struggle to process this mesh and it would be quite an expensive risk to try and print it as is.
You might be able to take the thickened mesh and cut away at the problem areas, then manually tidy up the holes created but this would be a long, manual process.
I also tried a 2mm offset but this was less successful... I think what is really needed is a sort of intelligent offset whereby in areas where the offset creates intersecting mesh geometry, the offset is smoothed off in the intersecting areas. Sorry... no idea how you could do this.
Do you want me to upload the 53Mb STL somewhere? Can I upload it to your dropbox?
Do you want me to upload the 53Mb STL somewhere? Can I upload it to your dropbox?…
Added by martyn hogg at 2:41pm on November 24, 2014