Warning: strpos() [function.strpos]: needle is not a string or an integer in /nfs/c01/h05/mnt/32378/domains/data-tribe.net/html/wework4her/index.php on line 71
trabajamos para ella !
Maya and Boost: primTreeUpdate 
Friday, April 10, 2009, 10:41 AM - Maya.c++.api., Analytical, algorithms
Posted by Administrator
update on minimal spanning trees videos are in real-time.
use of BOOST c++ template graph libraries within Maya plug-in, towards computing the euclidean minimal spanning tree of a set of points.The boost libraries implements both the Prim and Kruskal algorithm to compute the tree. Further, variation of the implementation is available as the Dijkstra shortest route algorithm

The lower video shows amateur attempts at implementing the algorithm using in c++ (left), in MEL (left) and a hybrid (middle).

The intention was always to achieve real time interaction, for the algorithm is useful towards path/route finding , calculating walking distances in a street network a la google maps etc. Evidently, none of the hack attempts were close to being real-time as opposed using the BOOST implementation that enables this.

Boost also includes other handy implementations to deal with graphs, and trees,statistical distributions et al.

20 comments ( 63 views )   |  0 trackbacks   |  permalink   |   ( 3 / 1067 )

Monday, December 8, 2008, 02:13 AM - Maya.c++.api., Analytical
Posted by Administrator

26 comments ( 49 views )   |  0 trackbacks   |  permalink   |   ( 2.9 / 1050 )

Saturday, December 6, 2008, 07:38 PM - Maya.c++.api., Analytical, algorithms
Posted by Administrator

details soon.
9 comments ( 503 views )   |  0 trackbacks   |  permalink   |   ( 3 / 1010 )

blind data 
Friday, October 24, 2008, 07:05 AM - Maya.c++.api., Analytical
Posted by Administrator
Image various data-mapping on torus mesh: R - L : ambient light & self shadowing, normal-field, and shortestEdgePath lengths.

The data is visualised using the blindDataShader plug-in. The source code for the plug-in ships with the Maya installation. Prior attempts used the in- built blind Data Editor and polyColorBlindData methods. The plug-in seems to work faster, and allows greater control over managing color-space.

Mental ray rendering of 'colored' mesh is by converting blind data to ColorPerVertex and using mentalVertexColors shading utility node.

videois in real-time.

12 comments ( 146 views )   |  0 trackbacks   |  permalink   |   ( 3 / 1011 )

Extending Maya 
Saturday, October 4, 2008, 12:10 PM - Maya.c++.api., Analytical, Geometry, algorithms
Posted by Administrator
Example Iso-surface from a CFD data. Using VTK within Maya.
Comparing the powerCrust surfaceReconstruction algorithm (cs.utexas) with marching-Cubes based reconstruction.
Data used : pointCloud from radioHead video_ house of cards.
Special thanks to Tim Hutton,of UCL for the VTK port of the algorithm.

Maya has, in the previous years , served an useful role in the production pipeline of many a team at AADRL, as also here in our office. Evidently, it not being a CAD application by purpose, presents its hurdles. It has however, proven sufficiently amenable towards extending/customising its capacities through,

Scripting (MEL and python)
Interfacing with command-line applications (qhull,isosurf, tetgen etc).
Making custom plug-ins (C++ and python) .
Incorporating external and openSource libraries/APIs ( CGAL,VTK, openNURBS )

Images here represent recent efforts to integrate Visualization ToolKit(C++ class library, and interpreted interface layers for Tcl/Tk, Java, and Python).
Thanks to Remik Ziemlinski for example source code related to converting internal VTK data representations to Maya representations.
See here for similar efforts to integrate blender and VTK.
See here for vtk-autocad and vtk-solidworks conversion plug-ins.
See here for vtk-inventor integration.

VTK is an extensive class library with a plethora of core graphic/geometric algorithms including Principal Component Ananlysis, tensor and vector feild visualizations, CFD, FEM visualizations etc.
A rudimentary but working pipeline between Maya and VTK, means I will be like a kid in a candy shop for a while to come!

Other open-source code libraries.(viva la open source!)
openDXfull-featured software package for the visualization of scientific, engineering and analytical data.Formerly of SGI.
openInventor:is an object-oriented 3D toolkit offering a comprehensive solution to interactive graphics programming problems.Formerly of IBM.

Using vtk classes to add iso-surfacing capacity to Maya.

14 comments ( 68 views )   |  0 trackbacks   |  permalink   |   ( 3 / 1039 )

sun Exposure 
Tuesday, May 13, 2008, 02:48 PM - Maya.c++.api., Analytical
Posted by Administrator
videos are in real-time

Interactive Maya node: simple rayTracing exercise to calculate annual&daily direct sunExposure.

Inputs: 'recieving surfaces', 'shading' surfaces, direction/s of sun.

Node can trace back from recieving surfaces or trace forward from the sky dome.

optimizations for interactivity:(see videos)
1.use of icosahedron to span sky-dome or sampling-space rather than a regular sphere.

2. heuristic neighboring search for sampling points (i.e search for intersection rays in the neighborhood of sampling points where intersections were previously found).

to do:
1. cache data for interactively visualisation of accrued data (i.e across the day / year)

2. connect to sun angle calculator.
3. add approximate measurement units / metrics.
4. add luminance, avg cloud-cover and other evaluative/characteristic metrics.
5. chart sun-path and establish 'mapping' logics, including data-overlay on unfolded sky-dome.
6. add geometry 'correcting' / suggestive solution-space.
7. add pointCloud export for Catia-parametric model.

7 comments ( 24 views )   |  0 trackbacks   |  permalink   |   ( 3 / 1114 )

In Lieu of a Manifesto :Experiments, Hueristics and Praxis 
Wednesday, February 6, 2008, 07:56 PM - Analytical, Research, papers
Posted by Administrator
The following post is abridged from a unpublished research paper that collates personal experiences related to 'architectural-computing' as part of team Manifold,AADRL, Architectural Assistant at HOK Sport London, and as Architectural Assistant at ZHA, London . However a niggling 'computational' task warranted the post. videos are in real time.

Ted Kruger, in his lecture series, Instrument and Instrumentality, uses Herbert Simon’s distinctions between ‘natural’ and ‘artificial’ sciences to describe the ‘sciences’ as operating on two agendas: understanding the world ‘as-is’ and speculating on ‘as-it should be’.

“Herbert Simon writing in Sciences of the Artificial posits two kinds of science the ‘natural’ and the ‘artificial’. Natural sciences, such as physics, chemistry and biology endeavour to understand the world ‘as it is’. The task is fundamentally descriptive and analytical. It concerns itself with thinking. Sciences of the artificial - business, engineering, and all of design, for examples, give primary consideration to the world‘as it should be’….”

Kruger, Ted: Instrument and Instrumentality.
V2_Lab; Workshops, lecture Ted Krueger,<www. lab.v2.nl/events/_docs/lecture_krueger.pdf>, pg 1.

Subscription to and extension of the argument would mean that ‘applied science’ could be posited as the bridge between the two. Further, (architectural) ‘design as research’ could be argued to exhibit similar properties of using, translating, transposing and adapting the descriptive tools of natural science to engineer an imagined and wished world.

_geometric relations, logical structures: parametric systems

Architecture as an assembly of design components implicitly suggests ‘self-similarity’ and ‘difference’ amongst the parts of the system. Particulars or aspects of this similarity and difference could be multitude. Nonetheless, our research aims to ‘appose’ and /or articulate the notion with other issues that deserve to be discussed.

In recent ‘parametric’ systems of design and of codification of design for construction, this aspect of similarity and difference, have tended to be manifested in the production of ‘homeo-morphic’ geometries such as ‘adaptive (to curvature) tiling’ patterns, structural skins etc. Alternatively, there have been systems, like those in robotics , that concentrated on production of non-topological difference and on aspects of ‘family’ and ‘individual’ on the basis of ‘attributes’ such as constituent parts , specific task-capacities, transformation pathways etc. Without explicit allegiance to one or the other, our research gravitates more towards using the first principles of all such systems : that of algorithmic procedures, machinating ‘control rigs’ where all pre-defined logical relations remain consistent as the system is manipulated or re-evaluated, use of external data as strategic inputs, feedback loops etc. Thus, parametric systems can be understood as systems of and/or related to quantification, determination of logical relations and continuous evaluation of a system so ‘rigged’ for multiple design outcomes.

Empirical evidence from (within our current context) of a multi-tiered, plural, and collaborative design process and environment implores for further articulation of one aspect of the definition (in bold above). A possible method of such an articulation, as will be argued in the example below, is through ‘rules-of-thumb’ or an abstraction of information and simplification of the ‘intelligence’ of parametric systems.

A free player from tradebit.com

A free player from tradebit.com

The associated images and video relate to an attempt to ‘parametrisize ’ the effect of built environment on the visual ‘field’ of its context and vice versa. The attempt was to develop a interactive ‘modelling’ tool which would re-evaluate a simple iterative logic upon manipulation of the model: shoot ‘rays’ from every point of a input set of ‘sampling’ points in pre-defined directions, calculate the ratio of the number of rays shot to those intersected by the built mass, and collate the distances at which those intersections occurred. Empirical experience would however point to a computational limit: calculation of intersection of rays with ‘mesh’ geometry, consumes a lot of computational resource and thus slowing down execution times. This, in spite of the code predominantly being wrappers to pre-compiled, professional code (from Autodesk Maya) and accounting for the amateur, enthusiast nature of the attempt. This then, points to significant aspect of ‘parametric’ systems: that of ‘re-evaluation time’ of a ‘parametric’ setup.

A free player from tradebit.com

Elaborating, most ‘parametric’ platforms ((Rhino explicit history, Generative Components, Maya Hyper-graph, Catia object- tree, rendering Shader-networks, et.al)) have to account for, in some form or manner, information flow between constituent ‘nodes’ : black-boxes that take one/multiple inputs and produce an output, which is further connected as ‘input’ to other such ‘nodes’. It then logically, and presumably from postulates of graph theory, follows that ‘evaluation time’ of such a set-up has to be dependent directly on the number of ‘nodes’;

It can be argued further that significant ‘time-gains’ can be effected only through more efficient, professional algorithmic and data structures. In this particular example for instance, there are better and professional (stand-alone) tools available that implement efficient algorithms relating to Geo-spatial analysis. (e.g: Space syntax Isovist, Matlab line of sight et al).

These aspects of ‘parametric’ systems or ‘architectural computing’, coupled with the nature of ‘multi-tiered, plural, and collaborative design process and environment’ outlined previously, point towards a need for ‘rules-of thumb’. Delineating further, these ‘rules’ need to abstract, encapsulate, and allow for the potential to integrate with, more advanced computing logics of science, engineering and construction. This would allow for an informed-yet-fluent design process without placing undue burden on the later stage of integration with ‘computation’ for construction.

Stated differently, most ‘scripting’ and other forms of ‘end-user programming’ within design realms, would be best served as an interface between opening up possibilities in the design realm, and enabling the manifestation of those possibilities in built form.

In the current example, this ‘rule-of-thumb’ was crudely instantiated as a reduction in the number of rays being shot, in order to approximate the result and enable ‘interactive’ feedback…

…More examples and substantiations to the argument to follow.

v1.0 non interactive tool but with shader support

14 comments ( 47 views )   |  0 trackbacks   |  permalink   |   ( 3 / 1183 )

real-time curvature information in Maya viewports. 
Thursday, January 17, 2008, 10:17 AM - Maya.c++.api., Maya.general.modelling, Analytical
Posted by Administrator
video is in real-time
Shows an application of the openGL generic-data visualising node. (see previous entry)

The node is being used to visualise 'curvature' under 'real-time' manipulation of a NURBS surface.

Currently supports only one surface at a time. V 1.0, based on a hardware shader node however, supports multiple objects.

Curvature values are computed from the 'derivative' information that the maya API provides access to. As such the numeric results are accurate (verified by comparision in Rhino). Only gaussian and mean curvatures curvatures can be displayed.

The color regions are dynamic divisions of the min-max range, which can be set.

click for more
click for more

15 comments ( 42 views )   |  0 trackbacks   |  permalink   |   ( 2.9 / 1212 )

Maya surface rationalization 
Friday, January 11, 2008, 11:35 AM - Maya.c++.api., Maya Embedded Language, Analytical
Posted by Administrator
video is in real-time
A typical work-flow with the tool-set developed (for maya) to estimate the number of panels of single-double and infinite curvature needed to span a single NURBS surface without compromising the discernible 'visual' continuity of the surface.

A free player from tradebit.com

click to read more
14 comments ( 55 views )   |  0 trackbacks   |  permalink   |  related link   |   ( 2.9 / 1200 )

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |