The famous “Deutsch limit” says, “you cannot have more than -say a hundred- components in a visual programming environment, that is why you cannot write an operating system with it.”; so it says, the perceptual and pedagogical advantages of visual programming are limited according to the size of your screen. However, there are two main oppositions to this argument. One of them says “textual programming environments have the same limitation, […]
Posts categorized under Grasshopper
After playing with vector fields in 2d (here) it was quite easy to create a 3d surface deformation. Here is my first experiment on a regular triangular grid’s three-dimensional behavior within a vector space, that includes a point charge of varying z coordinates. That makes field lines escape to a bounding box, instead of a bounding rectangle. Again, you may play with force decay, the number of samples, and the […]
Back to the basics. I finally had time to test the vector fields components in Grasshopper. It was a couple of updates ago, a new tool group emerged in the vector tab, introducing different types of vector fields to users. Then, these fields could be merged to form more complex effects. However, I created a very simple example of how we can use those components to distort a system (such […]
In this exercise, Grasshopper draws various Archimedean spirals. It constructs polar points and maps them onto a range of angles and a number of points. The spiral’s turning speed is determined by the constant “a,” while the constant “n” gives unique names to the spirals by raising the angle variable to the power of 1/n. Wolfram Mathworld names the spiral with n = -2 as lituus, n = -1 as […]
I’ve been searching for a method to study the Voronoi subdivision in order to manipulate it. There are well-known algorithms for that. But I thought it would be better if I use a projective approach just as I did in studying hyperbolic space (here). This is the metaphor of inflating balloons. However, I inflated cones instead of spheres. This way, it became possible to modify the algorithm. So I was […]
Today’s Architectural Geometry course was about platonic solids and different attractor objects in introducing component-based design systems. Benay’s idea was both pedagogical and interesting to test in Grasshopper. I searched for the most fundamental type of attractor solid in creating a composition such as this; There is a subdivided sphere and an attractor sphere. The pull component works great here. You may use multiple attractor solids or different shapes such […]
The Möbius strip is a famous mathematical object. Although being in three-dimensional space, it is a closed-loop of only one surface and only one edge. This quality alone makes the object an interesting study for computational design. I aimed to create an object to test our new CNC machine. I wanted to test the egg-crate interlocking fabrication method. This is why the study became a Möbius strip fabrication. Apart from […]
This is a late update for my 2012 study on Cairo Pentagonal Tiling (or Cairo Tessellation). Originally, it was an exercise of dual tessellations. Because this tiling is the dual of the famous semi-regular tessellation of Snub Square. After coding the Snub Square tiling, I attempted to generate the dual of it. However, that created an inefficient result. This latest version generates the original Snub Square and Cario Pentagonal Tilings. […]
Here is the step-by-step generation of the old Snub Square Tiling. Frankly, this is the first step in the generation of Cairo Pentagonal Tiling I generated with Grasshopper earlier. Because Cairo pentagonal is the dual of a snub square. The first step was easy. Just dispatch cells of a square grid, then evaluate them according to the ratio of 0.366 approx. which is derived from the bisector of an equilateral […]
The intricate harmony of the Islamic Patterns is amazing. The geometry of this and other Islamic pattern designs are explained in the 3rd chapter of Craig S. Kaplan’s Ph.D. dissertation. I constructed a semi-regular tessellation, particularly the 4.8 because it seems to open interesting explorations that mostly emerge from truncated squares. We know equilateral triangles and hexagons are also fundamental shapes for this task. However, the dual nature of the […]
This was my old plan to work with images in Grasshopper. Certainly, that was not the result I expected, but this could be counted as a starting point. After seeing beautiful circle packing compositions here, I decided to program Grasshopper, so that it’ll create a subdivision, based on image data. This was the initial version, just subdividing a plane with Voronoi points and visualizing it according to the image’s color […]
Today’s fractal is the famous Mandelbrot Set. The Mandelbrot set is a well-known and complex mathematical set often associated with fractals and chaos theory. Named after the mathematician Benoît B. Mandelbrot, it’s a set of complex numbers defined by a simple iterative process. The Mandelbrot set is an intricate and self-similar boundary, which reveals increasingly complex patterns at different magnifications. On the other hand, I heard the term “The fingerprint […]
Today’s fractal is the Julia Set, the amazing simplicity of chaos. There are lots of applets and articles on the internet about this fractal. You can generate this with the iteration of a basic function many times and placing points on the complex plane. I developed a Grasshopper implementation in 2012. Also, this was my first study on complex numbers. At each iteration, the detail level increases. I utilized a […]
After a couple of days of studying the mysterious Doyle spiral, I’ve decided to test an approach of circle packing from conformal mapping. First, I tried to understand the Poincare disk (earlier at here, here, and here and here). I used it as the hyperbolic representation of space on a two-dimensional plane. Then, I linked a regular hexagonal grid and rebuilt it after the hyperbolic distortion. This led me to find […]
We can create tessellations of outer points in a Poincare Disk, using the manual method explained in the last post (here). But repeating that compass and straightedge process is becoming a little useless after a couple of repeats. If you say “ok. I understood the concept, let’s get faster!” then we can model just the same process in Grasshopper3D to examine varying results in seconds; If we connect any grid of […]
Previous studies on the timer component were based on understanding its use. This time, I tried to implement it in a geometric design task. Moreover, manipulating the timer component to change the regular animation of parameters. Time does not have to be equally divided into sequences. Rather, new possibilities may emerge with different time flows. A simple triangulation system is developed with a potential manipulation, based on a timer. This […]
We can model a musical composition using native Grasshopper components. After the experiments with the timer component (here and here), I managed to build a definition that allows us to produce outputs in various time intervals. I converted a small part of Bach’s Bouree in E-Minor into Grasshopper as a guitar tablature. I used Guitar Pro 5’s MusicXML export function to convert classical guitar tablature into XML data, then organized […]
[GHX:0.8.0066] Here is today’s improvement on my metronome with the timer component, which started here. It’s straightforward to tell Grasshopper about seconds and organize it according to it. Using an interval smaller than 1 second, this small script catches every second and returns a different value. However, it’s much harder to implement smaller values than seconds. It seemed easy at first sight but getting accurate results smaller than seconds requires working […]
This was before Spherical Fantasies, while I was trying to update my surface equation definition. In between designerly intentions and mathematical facts, it’s hard to maintain a process, while keeping the definition yet simple and open to exploration. Grasshopper definition is here: [GHX: 0.8.0066] A little tired of mathematical definitions, I started to give names to the animate surfaces I develop. Like the Spherical one, this is also a trigonometric equation […]
This is about conforming distortions on surfaces and creating imperfect (say ugly) surfaces. I started with planar surfaces, however, I continued with spherical ones. There are interesting results when applying trigonometric functions to spherical surfaces. Example surface equations: W=(sin(x*y)) / 2 and W=(cos(x)+sin(x-y²)) / 2 Please be patient if animations are loading slowly. But they represent a way of creating free-form-looking surfaces, highly mathematical behind the scene. Here is the […]