Categories
Grasshopper / Rhino3D Parametric Design

Image tracer with pattern options

An animated version of the exported line drawings is shown above. Top left you can see the original. A is the grid of points that is measured, this can be set denser or less dense. B is the outline variant, D & E are columns and rows, C is everything combined.

The steps:

  • The image is divided into points where the brightness is measured.
  • Then there are 3 options in the script: horizontal rows made out of circles, vertical rows made out of circles, or an outline of the traced shape.

The rows and columns are all points with a brightness above a certain limit. These are combined per strip.

Examining the number of relationships with other points (the ‘proximity’ of other points), tells us wether a point is at the edge of a points collection.

The outline looks at the relationship with points around it. If a point has less than 8 points around it, this point is on an edge. These points are retained. Then an analysis takes place in which the points are sorted close to each other and combined into poly-lines. The points have no relation to each other at first, they are only sorted as the original grid was set up. By flattening the list and looking at the 2 closest neighbors per point, relationships between the points are created and an outline can be made.

Categories
Grasshopper / Rhino3D

Grasshopper game: DragRace with Firebase

The concept of live data exchange via the web, in combination with geometric applications such as in Rhino, offers many possibilities.

DragRace is a simple test with the plugin FireHopper. The plugin has not been in development for some time but is still relevant and working with the current API of Firebase, a (to some extent) free database system from Google.

Through the API calls that are possible from grasshopper thanks to the FireHopper plugin, live data can be exchanged in the JSON format.

This part is included in the script that can be downloaded at the bottom of this page. You can of course place your own API in this part of the script in the blank slate version at the bottom.

In the Firebase database the date can then be read out as follows:

The DragRace game

In this video Friso explains a few things about this setup:

A game contains some important elements:

  • A clear goal
  • Different levels of difficulty
  • A competition element

All these parts are built in the script as a way of exercise.

  • It is possible to choose the number of points to be gained and to set your name. (Step 2 in the picture below)
  • The goal is to score the points as quickly as possible by dragging the slider back and forth. Hence DragRace as a name.(Step 3)
  • As soon as the value is obtained it will be stored in the database in firebase.
  • Finally you can see the score of yourself and others in the database. That is competition element. (Step 4)
At the top left you can reset the game by clicking on the X for a new chance.

Proof of concept

Of course, the game is not accessible to the average user, but should be seen as an exercise in exchanging data over the Internet between different players. In a larger project, for example, this can be the exchange of geometric data.

Download and play!

Download the script here to try out how it works for yourself.

Here is a version without api and database data to add your own database.

Categories
Computational Design Grasshopper / Rhino3D Parametric Design

Automatic generation of cut-lines for a boat cover

Zeilmakerij Houtkoop approached StudioFG with the question whether certain cutting shapes could be generated automatically from his drawing in order to save time.

Among other things, Houtkoop makes boat covers, which are measured using a 3D scanner. Drawings are made on the basis of a few points from the 3D scan, which are then cut out by a CNC cutting machine. For overlapping parts, flaps for zippers and other shapes, certain cutting lines have to be generated from these panels.

Automatically generated hems from panels shapes

The designer of the boat cover can divide certain lines into layers. These are automatically loaded and converted to hems for example. 4 layers can divine 4 different types of parts.

A second challange was solving the orientation of all panels that came out of the 3D scan. Some panels had a main orientation inwards, while others had a ‘normal’ orientation outwards. For this purpose, a script was developed that analysed all surfaces and makes them universal in direction.

The project was completed in about 2 weeks. More than a year later, the scripts are still in use and work successfully on all the drawings to which it has been applied. Regardless of the geometry.

Categories
Computational Design Grasshopper / Rhino3D Parametric Design Teaching

Computational design pavilion with the TU Delft

With great pleasure we again teach the course Technoledge in which we realize a pavilion together with master students of TU Delft and PWR Wroclaw from design to realization in 7 weeks. The basis for the production is the parametrically controllable flexmould.