# Calculation of offset values on SNOT buildings.

This article describes a theory to ease calculations on SNOT building offset values using mathematical matrix theory.

Introduction

The reader needs to be familiar with SNOT and offset parts and techniques. Newbies would read usefully these references ,  and 

In the followings, we consider parts not as 3D-objects but as their projection on a classical vertical xz cartesian plane.

We consider parts combined with a 2D-vector. More precisely for each part, we define a hole-to-stud vector which origine is the base center of a hole and the end is the base center of a stud. For each part there are m holes (m>0) and n studs (n>0) 
that define l = m x n hole-to-stud vectors. m=2 ; n=2 ; l=4 m=1 ; n=3 ; l=3

Some vectors are common to more than one part. These parts are equivalent and constitute a class for this vector :

Class (0 ; 1.2) : To simplify calculations, with help of symmetrical issues, we’ll only consider vectors from parts :

1. Stud-up for non-SNOT parts
2. Positive offset for offset parts (corresponding vector annoted )
3. SNOT90 count clockwise for SNOT parts (corresponding vector annoted ") List of classes

• Class ( 0 ; 0.4 ) : (plates) • Class ( 0 ; 0.8 ) : (Erling’s brick, double plate) • Class ( 0 ; 1.2 ) : bricks 1xn as previously seen
• Class ( 0 ; 2.4 ) : bricks 1xnx2
• Class ( 0 ; 3.6 ) : bricks 1xnx3
• Class ( 0.5 ; 0.4 ) : (Jumper plate) • Class ( 0.7 ; -0.1 )" : (L-bracket) • Class ( 0.5 ; 0.5 )" : Calculations

Calculation of combined parts can then easily be performed using matricial mathematics :

We defined : a 2D-SNOT90 rotational matrix R90:

( 0 ; 1 )
( -1 ; 0 ) a z-symetrical matrix Sz:

( -1 ; 0 )
( 0 ; 1 )

Performing calculations

Calculation is simply performed following these rules : 1) adding vectors to each others. ( 0 ; 1.2 ) + ( 0 ; 0.4 ) = ( 0 ; 1.6 ) 2) multiplying previous result by the R90 matrix when adding a vector to a SNOT vector. ( 0.3 ; 0.7 )" * R90= ( -0.7 ; 0.3 )

( -0.7 ; 0.3 ) + ( 0 ; 0.4 ) = ( -0.7 ; 0.7 ) 3) multiplying previous result by the Sz matrix when adding an unsymetrical SNOT vector in the negative offset way. ( 0 ; 1.2 ) * Sz = ( 0 ; 1.2 )

( 0 ; 1.2 ) + ( 0.5 ; 0.4 ) = ( 0.5 ; 1.6 )

Other examples of calculations : ( 0.3 ; 0.7 )" * R90 = ( -0.7 ; 0.3)

( -0.7 ; 0.3 )+ ( 0.5 ; 0.5 ) = ( -0.2 ; 0.8 )

4 Erling bricks stacked on SNOT90 way : ( 0.3 ; 0.7 )" * R90 = ( -0.7 ; 0.3)

( -0.7 ; 0.3 )+ ( 0.3 ; 0.7 ) = ( -0.4 ; 1 )

( -0.4 ; 1 )" * R90 = ( -1 ; -0.4)

( -1 ; -0.4 )+ ( 0.3 ; 0.7 ) = ( -0.7 ; 0.3 )

( -0.7 ; 0.3 )" * R90 = ( -0.3 ; -0.7)

( -0.3 ; -0.7 )+ ( 0.3 ; 0.7 ) = ( 0 ; 0 )

What for ?

This theory is just a starting point.

A computer may generate an exhaustive list of combination of parts and calculate the resulting offset.

Such calculations will allow to create a table with answers for all 0.1 steps offset in both x and z direction. 

Further thoughts The resulting SNOT orientation (SNOT 90, SNOT 180...) is easily determined by counting R90 and Sz uses. Some combinations of parts are impossible and are not detected by vector computered calculations (multiple overlaping effects). The fact that some vector-classes are composed of two or more parts may help in finding a correct solution. This theory is of no help in 3-dimensions SNOT building.

[3SNOT&Co

[4Tiles can be considered with a ( 0 ; 0.4 ) vector only in the last SNOT building step

[5Consider also Erik Amzallag / Jason Railton answer to his problem