repl.it
@kurner/

S&E Modules

Python

Computations with Synergetics volume modules

fork
loading
Files
  • main.py
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
"""
From David Koski's paper:

Revisiting R.B. Fuller's S & E Modules

--------
The concentric hierarchy can be described in terms of 
phi-scaled S modules: 

Tetrahedron:  21S +  5s3 =  5S3 + 1S = 1S6 + 1S3 
Cube       :  72S + 15s3 = 15S3 + 3S = 3S6 + 3S3 
Octahedron :  84S + 20s3 = 20S3 + 4S = 4S6 + 4S3 
Rh Triac   : 105S + 25s3 = 25S3 + 5S = 5S6 + 5S3 (volume = 5) 
Rh Dodec   : 126S + 30s3 = 30S3 + 6S = 6S6 + 6S3
Pent Dodeca: 348E + 84e3
Icosahedron: 100E3 + 20E
VE         : 20
SuperRT    : 20 * S3
--------

On-line:  http://coffeeshopsnet.blogspot.com/2017/06/koski-paper.html
"""
from math import sqrt as rt2

φ  = (rt2(5)+1)/2      # golden ratio
S3 = rt2(9/8)          # not to be confused with Smod

Smod = (φ **-5)/2      # home base Smod
smod3 = Smod  * φ**-3  # small s, phi down
Smod3 = Smod  * φ**3   # capital s, phi up
Smod6 = Smod3 * φ**3   # phi up yet again

cubocta = 20
SuperRT = S3 * cubocta

Emod3 = SuperRT / 120          # Emod phi up
Emod = (rt2(2)/8) * (φ ** -3)  # home base Emod
emod3 = Emod * φ ** -3         # Emod phi down

S_factor = Smod / Emod
T_factor = pow(3/2, 1/3) * rt2(2)/φ

SmallVE = 20 * 1/8  # half D edges (=R)
SkewIcosa = SmallVE * S_factor * S_factor

print("Five VEs      : {:10.6f}".format(480*Smod + 280*smod3))
print("SuperRT       : {:10.6f}".format(SuperRT))
print("Cubocta       : {:10.6f}".format(cubocta))
# print("Volume of Icosa   : {:10.6f}".format(20 * 1/S_factor))
# print("Volume of Icosa   : {:10.6f}".format(420 * Emod + 100 * emod3))
print("Icosa         : {:10.6f}".format(100*Emod3 + 20*Emod))
print("P Dodeca      : {:10.6f}".format(348*Emod  + 84*emod3))
print("Five Octas    : {:10.6f}".format(132*Smod + 36*smod3))
print("Rh Dodeca (RD): {:10.6f}".format(6*Smod6 + 6*Smod3))
print("RT5+          : {:10.6f}".format(120*Emod))
print("RT5           : {:10.6f}".format(5*Smod6 + 5*Smod3))
print("Octa          : {:10.6f}".format(4*Smod6 + 4*Smod3))
print("Cube          : {:10.6f}".format(3*Smod6 + 3*Smod3))
print("Skew Icosa    : {:10.6f}".format(SmallVE * S_factor * S_factor))
print("Small VE      : {:10.6f}".format(SmallVE))
print("Tetra         : {:10.6f}".format(5*Smod3 + Smod))
print("-" * 20)
print("Emod3         : {:10.6f}".format(Emod3)) 
print("Emod          : {:10.6f}".format(Emod)) 
print("emod3         : {:10.6f}".format(emod3)) 
Octa = 4
Smod_check = (Octa - SkewIcosa)/24
print("Tmod          : {:10.6f}".format(Emod*1/T_factor**3)) 
print("Smod6         : {:10.6f}".format(Smod6))
print("Smod3         : {:10.6f}".format(Smod3))
print("Smod          : {:10.6f}".format(Smod))
print("Smod (check)  : {:10.6f}".format(Smod_check))
print("smod3         : {:10.6f}".format(smod3))