# Extensions:2.6/Py/Scripts/Nodes/Sverchok

UI location | Node Editor > Custom nodes > Add nodes | ||
---|---|---|---|

Version | 0.2.7 | Author(s) | Alexander Nedovzin, Nikita Gorodetskiy, Agustin Jimenez, Linus Yng, Dealga McArdle |

Blender | 2.69 | License | GPL3 |

File name | __init__.py |
---|---|

Current version download | http://github.com/nortikin/sverchok |

Data | 2014-01-12 |

Links | Bugs & ChangeLog: http://www.blenderartists.org/forum/showthread.php?272679-Addon-WIP-Sverchok-parametric-tool-for-architects, homesite: http://nikitron.cc.ua/sverchok.html |
---|

## 目次

## What is Sverchok

- Sverchok IS a tool for generating parametric geometry. We plan on supporting these features until version 2.0.
- Sverchok IS NOT a complete node-based redesign of Blender's UI. It does not support node based particles, lighting etc.
- Sverchok does not incorporate elements of pynodes' framework spector, because we are focused on a different aim - generating geometry. We are interested in developing Sverchok to work cooperatively with other node systems such as Lukas Toene's node based particle systems.
- Main developing line: MATH + MESH + SPLINES + NURBS.

## Screenshots

Sverchok is a tool that allows you to generate parametric and procedural forms and geometry with nodes, without having to know any programming or scripting languages.

I don't know why these gif images animations do not fit to the thumbnails. They are just full-sized

## How to Use

### Installation

Install the add-on by opening User Preferences and selecting "Install from file..." in the Add-ons tab. Check the checkbox on the right.

### Blendersushi posts about sverchok

- sverchok-get-to-know
- sverchok-connecting-dots
- sverchok-random-and-mask-list
- sverchok-when-python-plays-with-cricket
- sverchok-seeing-matrix
- sverchok-procedural-flower-and-leaf
- sverchok-revisiting-procedural-stacking
- sverchok-basic-of-procedural-city
- sverchok-in-between-blends
- sverchok-sweep-swipe-swoop
- sverchok-embracing-art-of-parametric
- sverchok-parametric-snippets-1
- Sverchok - parametric design study of ball
- Sverchok - parametric snippets 2
- Sverchok - in between strands of threads
- Sverchok - procedural city wip
- Sverchok - parametric snippets 3
- Sverchok - parametric snippets 4
- Sverchok - parametric snippets 5
- Sverchok - basic of semi procedural
- Sverchok - flower and snake (+18)
- Sverchok - parametric snippets 6
- Sverchok - parametric snippets 7

### Уроки на русском языке! === Lessons in Russian!

- Установка сверчка
- Путь сверчка
- Структура данных сверчка
- Карточки новых узлов (до 2014 года)
- Соединение объектов сверчок старый метод
- Стадион имени В.И.Ленина в сверчке, первая генеративная модель
- Материализация объектов, столы сделаны в сверчке
- Узел пользовательский. Программирование в песочнице сверчка, смогут все.
- Соединение вершин, поверхности и простая интерполяция.

### Data structure and sockets (slots on nodes)

FOR DETAILED INSTRUCTIONS ON DATA LOOK HERE: Data structure of sverchok

Sverchok has specific data structure:

```
What is data in Sverchok:
[[(x0,y0,z0),(x1,y1,z1),(x2,y2,z2)][... ]...] that is how it looks 0,1,2,3
0 [ ] socket's container list - essential
1 [object 0 ][object 1]... object, matrix, as one list, as many objects so many lists here
2 (vert 0 ),(vert 1 ),(vert 2 ) (... ) lists
3 x0,y0,z0 x1,y1,z1 x2,y2,z2 integers, floats
```

Sockets are:

- Vertices socket represent vectors, that define mesh (vertices are vectors and vice versa):

```
Vertices tree:
[[(x,y,z)]]
0 [ object,... ]
1 obect = [ v... ]
2 v = (x,y,z)
3 x,y,z = float,float,float
```

- Edges/Polygons/Data socket. cat transfer any data, simply used for create lists, floats, and used as lists of edges and polygons. in viewer it define itself, which kind of data you connect, if in list two elements - it is edges (connect integers), if in list more than two - it is polygons and automatically it draws polygons in 3d view or bake it to blender object with mesh.

```
Edges/polygons tree:
[[(n...)]]
0 [ object ]
1 object = [pol...]
2 pol = [n,n,n,n,n]
3 n = integer
```

- Matrixes consists of 4 lines at 4 floats, it defines rotation, scale, translation. It is mathimatically usefull to operate with matrixes. Only one matrix for one object. To draw several objects with the same mesh, you have to connect several matrixes, each of it defines object's location, rotation, scale.

```
Matrixes tree:
[[(x,y,z,w)]]
0 [ matrix ]
1 matrix = (a,b,c,d)
2 a,b,c,d = (x,y,z,w)...
3 x,y,z,w = float
```

Nikitron 17:59, 22 April 2014 (CEST)

# Nodes

### Basic

- Objects in - take data from object
- Bake all - bakes all geometry on fly - under development
- Viewer draw - draw data in OpenGL and bakes viewed object
- Viewer text - show data in "text editor" in "Sverchok text" file
- Viewer INDX - show vertices indeces in 3D. lesson howto index
- Tools - update all nodes, help, home site, feedback
- Wifi in - node to take sockets' values without wires on layout. Needed personal naming in special field to be the same as in output wifi. Work in pare.
- Wifi out - node to give sockets' values without wires on layout. Needed personal naming in special field to be the same as in input wifi. Work in pare.
- Text in - takes data from text file. Lesson_1, lesson_2
- Text out - makes data writed to text in some format - cvs, sverchok or other type. Than you can export it to some format
- Frame info - takes current frame, start, end frames
- Note - lets you leave notes on layout note node showed

Nikitron 17:59, 22 April 2014 (CEST)

### List

- List Levels - leave selected levels and delete other levels of nasted lists
- List Join - joins some lists in many ways
- List Zip - join several objects from one socket, but can join lists
- List Shift - shift items to some value usefull in polygons definition
- List Reverse - make list 1,2,3,4,5,6 reversed as 6,5,4,3,2,1
- List Length - length of selected list level
- List Sum - Sum of all items in list (floats and int)
- List First&Last - get first and last item in list on selected data level
- List Item - pick item
- List Repeater - repeat some user-defined level's list some user-defined times
- List Math - operates with lists - takes maximum value, minimum value and avarage value
- List Flip - flip some level of list that row becomes column and vise versa
- List Mask - mask by another boolean list
- List Sort - sort list
- List Shuffle - randomise list
- List Match - making one list match in length for another and vice versa. One ca be shorten, cycled prolonged or repeated prolonged in different levels
- Socket convert - temporery solution till we have adaptive sockets universal

Nikitron 17:59, 22 April 2014 (CEST)

### Number

- Series - makes range of floats
- Range - the same, but diapason devided by division's count
- List input - creates list from exact values as many as needed
- Random - makes so many rendom floats as you tell him. Random from 0 to 1
- Float - make float value
- Int - make integer value
- Float 2 Int - make integer from float
- Formula - calculate values by some expressions defined by user (+, -, /, *, min, max, sin, cos, etc.)
- Math - math functions in one node
- Formula2 - support vector*vector, define hierarhy and calculate respectfully to it. Supporting additionally to formula:

acos() acosh() asin() asinh() atan() atan2() atanh() ceil() copysign() cos() cosh() degrees() e erf() erfc() exp() expm1() fabs() factorial() floor() fmod() frexp() fsum() gamma() hypot() isfinite() isinf() isnan() ldexp() lgamma() log() log10() log1p() log2() modf() pi pow() radians() sin() sinh() sqrt() tan() tanh() trunc() == != <, > for, in, if, else []

and output to vector. Moreover, you can define lists with formula, i.e. 0,1,2,3,4,5 for series or (1,2,3),(1,2,3) for vertices Nikitron 17:59, 22 April 2014 (CEST)

### Generators

- Line - fully makes line - vertices and edges, can take series of steps
- Plane - fully makes plane grid with steps and number of dots, as line do
- Box - could be subdivided on X,Y,Z
- Cyrcle - could be segmented or chorded
- Cylinder - subdivisions in height
- Sphere - usual Sphere
- Hilbert - Гильбертово пространство, квадрат всегда
- Hilbert Image - hilbert from image
- Voronoi - makes voronoi 2D field from vectors
- Image - mesh defined by image
- Random Vector - makes unit normal vectors in random values
- Scripted Node - you making script and node appears. details lesson how to make your custom script, lesson how to bind your script to script node

- Here are the current implementation rules for node-loadable scripts for Scripted Node:

- We have simplifyed syntax - no need if than wxpression with {0}... See templates

- the main working function must be called
**sv_main** - function def must have input variables and defaults. It could be
**def sv_main(veriable=12)**for integers/floats defaults or**def sv_main(veriable=[])**for lists and series of floats/integers - must have
**in_sockets**and**out_sockets**, as shown in examples and**return**them - you can create three types of in/out sockets:

- 'v' - Vectors socket
- 's' - edges/polygons/numbers/else socket
- 'm' - matrices socket

- it looks like:

- the main working function must be called
**in_sockets = [****['s', 'Vertices', data],****['s', 'Step', step],**

**]**- you can define
**def sv_main(**your_veriables_here**):**and press**CTRL+I**in text area to automake veriables in in_sockets list. All for your convenient.

- you can define

- Please, use templates in node (popup and button)

Nikitron 23:48, 3 May 2014 (CEST)

### Vectors

Vector - is list of three floats (x,y,z), defining 3D situation of one dot

Matrix - here you can find links to educate what is matrix - is three vectors responsible for Location, Scale, Rotation. We define that or change or multiply.

- Vector in - make Vector
- Vector out - destruct vector to XYZ
- Vector normal - gives normal of vector from polygoons and vertices
- Vector Move - moves vectors to another verctors
- Vector Math - Basic Vector functions in one node. Add, Sub, Normal, Distance, Projection, Cross Product, etc
- Matrix apply - apply matrix (locatin, rotation, scale) to vertices, similar to ctrl+A in blender
- Vector Drop - makes polygons turned to floor, as they lay on floor. usefull for farthere usage in bezier curve 2D operations and making easy DWG layout to plot or something else. Here we have usage of Vector Drop
- Vector X Doubles - remove doubled vertices (twiced node with other in modifiers - need to be removed doubled itself. that irony)
- Vector Evaluate - find points from one point to other - can have minus values and more than 1
- Vertices Sort - sorting vertices at one direction or another
- Matrix Apply - apply Tra/Rot/Sca values to vertices as alt+A
- Matrix in - generate matrix
- Matrix out - destroy matrix to location and scale
- Matrix Deform - define scale, rotate or translate matrixes. It is able to rotate matrix with two vectors: Put initial vector to Rotation Axis vector socket and second to Angle. It will rotate on difference between angles Rot-Ang. It is showed in Spider example file on official site's examples.
- Shear Matrix - makes matrix to shear as shift up to one side, bottom to another, for example lesson how to shear
- Matrix interpolation - defines "mutations" for middle-deformed matrixes.

### Modifier

- Centers Polygons - find polygon's centers
- Adaptive polygons - makes donor object spreads on recipient object adaptively to each polygon's corners. Donor has to be square on base, and base square has to locate on local zero Z-axis. Lesson how to adaptive polygons
- Adaptive Edges - replace some edge of recipient with donor's edges.
- Cross Section old - makes section between object and plane. Plane - it is matrix' XY plane, so many matrixes makes many sections
- Bisect new - makes crossection with more functions and quicker Here we have how to bisect (cross section)
- Solidify - makes mesh extruded
- Wireframe - makes wireframed mesh
- Line Connection - by edges/polygons (not fully ended) Lesson how to line connection
- Delanuary 2D - makes polygons from vectors
- Voronoi - makes voronoi edged mesh in floor, 2D frm defined points
- Polygon Boom - separates polygons to objects and dropping them to zero point - here we have polygon boom usage
- Polygons to Edges - converts polygons to edges Lesson how to polygon to edge
- Mesh Join - join several meshes with preserve of vertex indexes in polygons/edges
- Mesh Remove Doubles - removes doubled vercites and polygons and edges
- Delete Loose - deleting free vertices left from edges/pols, that use some vertices
- Convex Hull - as Delaunay node makes triangles on vertices, but in 3D
- Intersect edges - finding intersections of edges

### Analiser

- Distances - find distances between matrixes or vertices
- Area - area of polygons and theyr's sum
- KDTree vertices - finding closest point to other points list
- KDTree edges - creating edges based on distance between vertices