Sonic components are now part of Mosquito:

http://grasshopper3d.com/group/mosquito

http://www.studiosmuts.com/ceed3/mosquito/

 

Sonic is a Grasshopper plugin suite that currently contains the following components:

UPDATE : New Refraction component!!!! as requested 🙂   and a fix for TargetRays when rays reflect several times off a single surface/object.

COMPONENTS:

Refract: A plugin that works in a similar mannar to the Reflection component (TargetRays) except it calculates refraction rays. Requires that you specify a refraction index for the medium which the ray is passing from and into. See the description of this component below.

SquareRoot: An optimized Square Root function multiple times faster than the default Square Root Component (based on Math.Sqrt I presume) with a slight trade off in rounding numbers.

Flow: Calculates the flow of lines via the path of least resistance down a sloped surface.(eg. water runoff)

TargetRays + SurfaceRays: Both plugins are used to cast and calculate surface reflections rays.

We hope to develop this into a larger suite of components, but for now its contains three components.

The plugin suite  comes with many GH Example files.......

DOWNLOAD

Sonic components are now part of Mosquito:

http://grasshopper3d.com/group/mosquito

Mosquito Download:

http://www.studiosmuts.com/ceed3/mosquito/

 
If you like it please support us, that way we can devote more time to develop these plugins.
 
 
 
 
 
 
 

vid

Flow  Video

Click on the FLOW VIDEO above or go to : http://www.youtube.com/watch?v=MEl94L7VIrY

vid

Surface and Target Ray Video

Click on the TargetRays VIDEO above or  go to : http://www.youtube.com/watch?v=Q57srPYiZnQ

SonicRoot

INPUT/OUTPUT

Here you can see that the difference in time to calculate 5000 numbers between Grasshoppers Square Root  (based on Math.Sqrt I presume) and Sonics Square Root. There is a tradeoff in accuracy, but that should not matter, given the speed.

The Algorithm

The binary Algorithm used in this component stems from Gaming and Graphic development back in the 1990's effectively calculating the inverse square root. It also makes use of Newton's method of finding roots. I have also made use of some scary looking bitwise manipulation.

Input: Insert the number or list of numbers you wish to compute.

Root: Resulting Square Root of those numbers.

Flow

INPUT/OUTPUT

Surface: Plugin your surface that you wish to use for flow testing.

Points: Plugin your points that you wish to use for each stream, note that these points only have to be near the top of the surface , check examples .

Res: The resolution of the curve output. The low the value to more rigid the curve. Try to keep this fairly low.

Calc: Number of calculations for each stream. This input and 'Res' work together, if you raise 'Res' value then you need to increase Calc. Calc can also be used to animate the flows.

pLine: Use a 'boolean toggle' to choose whether the output 'Curves' are PolyLines. If left 'False' the output will be Interpolated Curves.

Target and Surface Rays

Main Features Include:

Multiple Surface Calculations ,Occlusion testing , Automated output of Normals, UVs , Vectors and more in ordered Data Tree Branches and Paths.

OUTPUTS

(NOTE: All outputs are demonstrated in the "OUTPut example" files included with the download.)

The outputs are the same for both plugins and are as follows:

Points: Exports a list of points for each ray, each ray has its own Path in the DataTree.

Vectors: Exports each vector for each of the above bounce 'Points', lists are ordered the same as the Points ouput.

Normals: Exports the normals for each reflection point for each surface supplied.

UVs: The respective UVs for the above list entries in case you would like to evaluate the surfaces, you will need to use some culling logic here.

Srfs: Outputs the input surfaces in a relative order to the above lists. excluding surfaces not involved in the process.

SrfUvs: This list order matches the "Srfs" output. Use this with the "Srfs" output to evaluate the surface bounce points.

SrfInd: This is an odd one, but it contains the indexes for the first 4 outputs with regards to surfaces in the "Srfs" Output. ( I find it useful)

SrfCull: This is used to cull out the first 4 output values so that the output is relative to each surface in "Srfs".

Curves : Outputs the bounce path for each ray as Polylines.

Refract

Calculates the refraction of rays through mutliple surfaces.

SourcePts: The start of a ray.

TargetPts: The end point of a ray.

Surfaces: The surface through which the rays will be refracted.

Ni: The Refraction Index of the first medium the ray starts in i.e. Air

Nr: The Refraction Index of the medium the ray is passing into i.e. Water

Solid: Toggling this will treat the space between any two surfaces as the same medium. Check example files included in the download for more info.

Refraction Indices:

I have included a list of generic Refraction Indices in the Grasshopper definition.

Enjoy the Plugins,

Carson

 
 
 
 
Example Images:

Flow

TargetRays + SurfaceRays

logo-default-ss_c

Synthetic Spaces is the design portfolio and writings of Carson and Anja Smuts.

Copyright 2018 SyntheticSpaces © All Rights Reserved