<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 <font color=Teal>ATOMIC STRING FUNCTIONS and SPACETIME QUANTIZATION MODELS (Python Code)</font>
By Sergei Eremenko, PhD, Dr.Eng., Professor, Honorary Professor
https
Step1:  <font color=teal>2. Atomic String Function (AString) is an Integral and Composing Branch of Atomic Function up(x) (introduced in 2017 by S. Yu. Eremenko)</font>
AString function is solitary kink function which simultaneously is integral and composing branch of atomic function up(x) 
<font color=maroon>AString'(x) = AString(2x+1) - AString(2x-1) = up(x)</font>
Step2:  Atomic String, Atomic Function (AF) and AF Derivative plotted together
Step3:  <font color=teal>3. Properties of Atomic Function Up(x)</font>
3.1. Atomic Function Derivative expressed via Atomic Function itself
Atomic Function Derivative can be exressed via Atomic Function itself - up'(x)= 2up(2x+1)-2up(2x-1) meaning the shape of pulses for derivative function can be represented by shifted and stratched Atomic Function itself - remarkable property
<font color=maroon>up'(x)= 2up(2x+1)-2up(2x-1)</font>
Atomic Function and its Derivative plotted together
Step4:  3.2. Partition of Unity
The Atomic Function pulses superposition set at points -2, -1, 0, +1, +2... can exactly represent a Unity (number 1)
Step5:  3.3. Atomic Function (AF) is a 'finite', 'compactly supported', or 'solitary' function
Like a Spline, Atomic Function (AF) 'compactly supported' not equal to zero only on section |x|<=1
Step6:  3.4 Atomic Function is a non-analytical function (can not be represented by Taylor's series), but with known Fourier Transformation allowing to exactly calculate AF in certain points, with tabular representation provided in script above.
<font color=teal>4. Properties of Atomic String Function</font>
4.1. AString is not only Integral but also Composing Branch of Atomic Function
<font color=maroon>AString'(x) = AString(2x+1) - AString(2x-1) = up(x)</font>
Astring is a swing-like function - Integral of Atomic Function (AF) which can be expressed via AF itself
Step7:  4.3. AStrings and Atomic Solitons
Solitonic mathematical properties of AString and Atomic Functions have been explored in author's paper [2,3] (Eremenko, S.Yu. Atomic solitons as a new class of solitons; 2018; https
Step8:  4.6. Partition of Line from Atomic String functions
Combination/summation of Atomic Strings can exactly represent a straight line
Step9:  Partition based on AString with certain width and height depending on a size of 'quanta'
Step10:  <font color=teal>5. Model of Spacetime composed from AStrings Quanta (AString Metriants)
5.1. This is an abstract of paper "Atomic Strings and Fabric of Spacetime"
Based on a generalization of well-known atomic function this paper introduces an atomic string (AString) as a swing-like function by joining of which on a periodic lattice it is possible to build  one model for absolutely flat and curved spacetime and explain gravitational warping effects due to a unique property of all derivatives being expressed via AString itself. Physically AString may represent a soliton-like elementary string as a spacetime warp/distortion composing atomic quanta in multiple dimensions which can grow, shrink, group into atoms and compose smooth continua, solid and biological matter widespread in nature. This makes AString a good candidate for an elementary string as a fundamental block of matter and spacetime fabric. AString can also be used as a generating axiom for a new non-Archimedean atomic calculus to describe nonlinear metric within cosmic strings and build never overflowing atomic computer with the super fast calculation of derivatives. The AString along with closely related atomic function may find new areas of applications in lattice physics, string theory, relativity, quantum gravity, cosmic strings, multiverse, dark matter, solitons, dislocations, computing, evolution of solid and biological matter, finite element methods, new regression analysis and artificial intelligence classification models.
5.2. Representing spacetime expansion via summation of AStrings quanta
Step11:  5.3. Model of Spacetime curvature and gravity based on AStrings
Schematic model of Gravitation explaining General Relativity effects where spacetime Shape, Density and Curvature are deeply related to each other being expressed via shifts and stretches of the same AString Atomic Function
Step12:  <font color=teal>6. 'Soliton Nature' book</font>
6.1. The theory is also described in a book 'Soliton Nature'
Soliton Nature book is easy-to-read, pictorial, interactive book which uses beautiful photography, video channel, and computer scripts in R and Python to demonstrate existing and explore new solitons – the magnificent and versatile energy concentration phenomenon of nature.  New class of atomic solitons can be used to describe Higgs boson (‘the god particle’) fields, spacetime quanta and other fundamental building blocks of nature.
<ASSISTANT_TASK:>
Python Code:
import numpy as np
import pylab as pl
pl.rcParams["figure.figsize"] = 9,6
###################################################################
##This script calculates the values of Atomic Function up(x) (1971)
###################################################################
################### One Pulse of atomic function
def up1(x: float) -> float:
    #Atomic function table
    up_y = [0.5, 0.48, 0.460000017,0.440000421,0.420003478,0.400016184, 0.380053256, 0.360139056, 
           0.340308139, 0.320605107,0.301083436, 0.281802850, 0.262826445, 0.244218000, 0.226041554, 
           0.208361009, 0.191239338, 0.174736305, 0.158905389, 0.143991189, 0.129427260, 0.115840866, 
           0.103044024, 0.9110444278e-01, 0.798444445e-01, 0.694444445e-01, 0.598444445e-01, 
           0.510444877e-01, 0.430440239e-01, 0.358409663e-01, 0.294282603e-01, 0.237911889e-01, 
           0.189053889e-01, 0.147363055e-01, 0.112393379e-01, 0.836100883e-02, 0.604155412e-02, 
           0.421800000e-02, 0.282644445e-02, 0.180999032e-02, 0.108343562e-02, 0.605106267e-03, 
           0.308138660e-03, 0.139055523e-03, 0.532555251e-04, 0.161841328e-04, 0.347816874e-05, 
           0.420576116e-05, 0.167693347e-07, 0.354008603e-10, 0]
    up_x = np.arange(0.5, 1.01, 0.01)
    res = 0.
    if ((x>=0.5) and (x<=1)):
        for i in range(len(up_x) - 1):
            if (up_x[i] >= x) and (x < up_x[i+1]):
                N1 = 1 - (x - up_x[i])/0.01
                res = N1 * up_y[i] + (1 - N1) * up_y[i+1]
                return res
    return res
############### Atomic Function Pulse with width, shift and scale #############
def upulse(t: float, a = 1., b = 0., c = 1., d = 0.) -> float:
    x = (t - b)/a
    res = 0.
    if (x >= 0.5) and (x <= 1):
        res = up1(x)
    elif (x >= 0.0) and (x < 0.5):
        res = 1 - up1(1 - x)
    elif (x >= -1 and x <= -0.5):
        res = up1(-x)
    elif (x > -0.5) and (x < 0):
        res = 1 - up1(1 + x)
    res = d + res * c
    return res
############### Atomic Function Applied to list with width, shift and scale #############
def up(x: list, a = 1., b = 0., c = 1., d = 0.) -> list:
    res = []
    for i in range(len(x)):
        res.append(upulse(x[i], a, b, c, d))
    return res
x = np.arange(-2.0, 2.0, 0.01)
pl.title('Atomic Function up(x)')
pl.plot(x, up(x), label='Atomic Function')
pl.grid(True)
pl.show()
Explanation: <font color=Teal>ATOMIC STRING FUNCTIONS and SPACETIME QUANTIZATION MODELS (Python Code)</font>
By Sergei Eremenko, PhD, Dr.Eng., Professor, Honorary Professor
https://www.researchgate.net/profile/Sergei_Eremenko
https://www.amazon.com/Sergei-Eremenko/e/B082F3MQ4L
https://www.linkedin.com/in/sergei-eremenko-3862079
https://www.facebook.com/SergeiEremenko.Author
Atomic String (AString) function, with the name relevant to well-known Atomic Functions, is a smooth compactly-supported solitonic kink function by joining of which on a periodic lattice it is possible to build models of flat and curved spacetime and other continua widespread in nature, as well as to introduce the concepts of AString Spacetime Quantum and AString Metriant.
It may lead to novel models of quantized spacetime as a superposition of elementary AStrings kinks which may represent 'spacetime distortions/warps' studied by Stephen Hawking, or 'metriants' by A.Veinik, or 'ripples' of Higgs and other quantum fields permeating the space. 
Joining/summation of co-located AStrings represents expansion of space while opposite AStrings form 'solitonic atoms' (Atomic Function) composing the fields holding quanta together.
AStrings, with unique property of derivatives being expressed via AString itself, can be used to create models of quantized gravity and expain general relativity effects where spacetime shape and matter distributions are deeply related to each other being expressed via shifts and stretches of the same AString function. 
AStrings and Atomic Functions may also be used to construct models of different quantum fields as fundamental blocks of matter, anti-matter (solitonic atoms, Higgs fields, waves), cosmic strings and contribute to the theories of dark matter, chronal matter and multiverse where quanta can significantly differ from the ones in ordinary universe.
AStrings  and Atomic Functions may find some applications in Spacetime Physics, String theory, General and Special Relativity, Theory of Solitons, Lattice Physics, Quantum Gravity, Cosmology, Dark matter and Multiverse theories as well as Finite Element Methods, Nonarchimedean Computers, Atomic regression analysis, Machine Learning and Artificial Intelligence.
Atomic Strings was introduced in 2017-2020 by the author, Professor Sergei Yu. Eremenko (https://www.researchgate.net/profile/Sergei_Eremenko), in papers "Atomic Strings and Fabric of Spacetime", "Atomic Solitons as a New Class of Solitons", "Atomic Machine Learning", and book "Soliton Nature" [1-8]. AStrings are deeply rooted into the theory of Atomic Functions (https://ru.wikipedia.org/w/index.php?oldid=82669103) developed since 1970s by author's teacher   Academician NAS of Ukraine Rvachev V.L. (https://ru.wikipedia.org/w/index.php?oldid=83948367), professor Rvachev V.A. and advanced by many followers, notably professor Kravchenko V.F. (https://ru.wikipedia.org/w/index.php?oldid=84521570).
<font color=teal>1. Atomic Function up(x) (introduced in 1971 by V.L.Rvachev and V.A.Rvachev)</font>
End of explanation
############### Atomic String #############
def AString1(x: float) -> float:
    res = 1 * (upulse(x/2.0 - 0.5) - 0.5)
    return res
############### Atomic String Pulse with width, shift and scale #############
def AStringPulse(t: float, a = 1., b = 0., c = 1., d = 0.) -> float:
    x = (t - b)/a
    if (x < -1):
        res = -0.5
    elif (x > 1):
        res = 0.5
    else:
        res = AString1(x)
    res = d + res * c
    return res
###### Atomic String Applied to list with width, shift and scale #############
def AString(x: list, a = 1., b = 0., c = 1., d = 0.) -> list:
    res = []
    for i in range(len(x)):
        res.append(AStringPulse(x[i], a, b, c, d))
        #res[i] = AStringPulse(x[i], a, b, c)
    return res
###### Summation of two lists #############
def Sum(x1: list, x2: list) -> list:
    res = []
    for i in range(len(x1)):
       res.append(x1[i] + x2[i])
    return res
x = np.arange(-2.0, 2.0, 0.01)
pl.title('Atomic String Function')
pl.plot(x, AString(x, 1.0, 0, 1, 0), label='Atomic String')
pl.grid(True)
pl.show()
Explanation: <font color=teal>2. Atomic String Function (AString) is an Integral and Composing Branch of Atomic Function up(x) (introduced in 2017 by S. Yu. Eremenko)</font>
AString function is solitary kink function which simultaneously is integral and composing branch of atomic function up(x) 
<font color=maroon>AString'(x) = AString(2x+1) - AString(2x-1) = up(x)</font>
End of explanation
x = np.arange(-2.0, 2.0, 0.01)
#This Calculates Derivative
dx = x[1] - x[0]
dydx = np.gradient(up(x), dx)
pl.plot(x, up(x), label='Atomic Function')
pl.plot(x, AString(x, 1.0, 0, 1, 0), linewidth=2, label='Atomic String Function')
pl.plot(x, dydx, '--', label='A-Function Derivative')
pl.title('Atomic and AString Functions')
pl.legend(loc='best', numpoints=1)
pl.grid(True)
pl.show()
Explanation: Atomic String, Atomic Function (AF) and AF Derivative plotted together
End of explanation
x = np.arange(-2.0, 2.0, 0.01)
pl.plot(x, up(x), label='Atomic Function', linewidth=2)
pl.plot(x, dydx, '--', label='Atomic Function Derivative', linewidth=1, color="Green")
pl.title('Atomic Function and Its Derivative')
pl.legend(loc='best', numpoints=1)
pl.grid(True)
pl.show()
Explanation: <font color=teal>3. Properties of Atomic Function Up(x)</font>
3.1. Atomic Function Derivative expressed via Atomic Function itself
Atomic Function Derivative can be exressed via Atomic Function itself - up'(x)= 2up(2x+1)-2up(2x-1) meaning the shape of pulses for derivative function can be represented by shifted and stratched Atomic Function itself - remarkable property
<font color=maroon>up'(x)= 2up(2x+1)-2up(2x-1)</font>
Atomic Function and its Derivative plotted together
End of explanation
x = np.arange(-2.0, 2.0, 0.01)
pl.plot(x, up(x, 1, -1), '--', linewidth=1, label='Atomic Function at x=-1')
pl.plot(x, up(x, 1, +0), '--', linewidth=1, label='Atomic Function at x=0')
pl.plot(x, up(x, 1, -1), '--', linewidth=1, label='Atomic Function at x=-1')
pl.plot(x, Sum(up(x, 1, -1), Sum(up(x), up(x, 1, 1))), linewidth=2, label='Atomic Function Compounding')
pl.title('Atomic Function Compounding represent 1')
pl.legend(loc='best', numpoints=1)
pl.grid(True)
pl.show()
Explanation: 3.2. Partition of Unity
The Atomic Function pulses superposition set at points -2, -1, 0, +1, +2... can exactly represent a Unity (number 1):
1 = ... up(x-3) + up(x-2) + up(x-1) + up(x-0) + up(x+1) + up(x+2) + up(x+3) + ...
<font color=maroon>1 = ... up(x-3) + up(x-2) + up(x-1) + up(x-0) + up(x+1) + up(x+2) + up(x+3) + ...</font>
End of explanation
x = np.arange(-5.0, 5.0, 0.01)
pl.plot(x, up(x), label='Atomic Function', linewidth=2)
#pl.plot(x, dydx, '--', label='Atomic Function Derivative', linewidth=1, color="Green")
pl.title('Atomic Function is compactly supported')
pl.legend(loc='best', numpoints=1)
pl.grid(True)
pl.show()
Explanation: 3.3. Atomic Function (AF) is a 'finite', 'compactly supported', or 'solitary' function
Like a Spline, Atomic Function (AF) 'compactly supported' not equal to zero only on section |x|<=1
End of explanation
#########   Presentation of Atomic Function via Atomic Strings ##########
x = np.arange(-2.0, 2.0, 0.01)
pl.plot(x, AString(x, 1, 0, 1, 0),  '--', linewidth=1,  label='AString(x)')
pl.plot(x, AString(x, 0.5, -0.5, +1, 0), '--', linewidth=2, label='+AString(2x+1)')
pl.plot(x, AString(x, 0.5, +0.5, -1, 0), '--', linewidth=2, label='-AString(2x-1)')
#pl.plot(x, up(x, 1.0, 0, 1, 0),     '--', linewidth=1, label='Atomic Function')
AS2 = Sum(AString(x, 0.5, -0.5, +1, 0), AString(x, 0.5, +0.5, -1, 0))
pl.plot(x, AS2, linewidth=3, label='Up(x) via Strings')
pl.title('Atomic Function as a Combination of AStrings')
pl.legend(loc='best', numpoints=1)
pl.grid(True)
pl.show()
Explanation: 3.4 Atomic Function is a non-analytical function (can not be represented by Taylor's series), but with known Fourier Transformation allowing to exactly calculate AF in certain points, with tabular representation provided in script above.
<font color=teal>4. Properties of Atomic String Function</font>
4.1. AString is not only Integral but also Composing Branch of Atomic Function
<font color=maroon>AString'(x) = AString(2x+1) - AString(2x-1) = up(x)</font>
Astring is a swing-like function - Integral of Atomic Function (AF) which can be expressed via AF itself:
AString(x) = Integral(0,x)(Up(x)) = Up(x/2 - 1/2) - 1/2
<font color=maroon>AString(x) = Integral(0,x)(Up(x)) = Up(x/2 - 1/2) - 1/2</font>
4.2. Atomic Function is a 'solitonic atom' composed from two opposite AStrings
The concept of 'Solitonic Atoms' (bions) composed from opposite kinks is known in soliton theory [3,5].
<font color=maroon>up(x) = AString(2x + 1) - AString(2x - 1)</font>
End of explanation
x = np.arange(-2, 2.0, 0.01)
pl.title('AString and Fabius Functions')
pl.plot(x, AString(x, 0.5, 0.5, 1, 0.5), label='Fabius Function')
pl.plot(x, AString(x, 1, 0, 1, 0), label='AString Function')
pl.legend(loc='best', numpoints=1)
pl.grid(True)
pl.show()
Explanation: 4.3. AStrings and Atomic Solitons
Solitonic mathematical properties of AString and Atomic Functions have been explored in author's paper [2,3] (Eremenko, S.Yu. Atomic solitons as a new class of solitons; 2018; https://www.researchgate.net/publication/329465767). They both satisfy differential equations with shifted arguments which introduce special kind of <b>nonlinearity</b> typical for all mathematical solitons.
AString belong to the class of <b>Solitonic Kinks</b> similar to sine-Gordon, Frenkel-Kontorova, tanh and others. Unlike other kinks, AStrings are truly solitary (compactly-supported) and also have a unique property of composing of both straight-line and solitonic atoms on lattice resembling particle-like properties of solitons.
Atomic Function up(x) is not actually a mathematical soliton, but a complex object composed from summation of two opposite AString kinks, and in solitonic terminology, is called 'solitonic atoms' (like bions).
4.4. All derivatives of AString can be represented via AString itself
<font color=maroon>AString'(x) = AString(2x + 1) - AString(2x - 1)</font>
It means AString is a smooth (infinitely divisible) function, with fractalic properties.
4.5. AString and Fabius Function
Fabius Function https://en.wikipedia.org/wiki/Fabius_function, with unique property f'(x) = 2f(2x), published in 1966 but was probably known since 1935, is shifted and stretched AString function. Fabius function is not directly an integral of atomic function up(x). Properties of partition of line and representing other functions have not been explored as much as it is done in the theory of atomic functions for 50 years in hundreds of papers.
<font color=maroon>Fabius(x) = AString(2x - 1) + 0.5</font>
End of explanation
x = np.arange(-3, 3, 0.01)
pl.plot(x, AString(x, 1, -1.0, 1, 0),   '--',  linewidth=1, label='AString 1')
pl.plot(x, AString(x, 1, +0.0, 1, 0),   '--',  linewidth=1, label='AString 2')
pl.plot(x, AString(x, 1, +1.0, 1, 0),   '--',  linewidth=1, label='AString 3')
AS2 = Sum(AString(x, 1, -1.0, 1, 0), AString(x, 1, +0.0, 1, 0))
AS3 = Sum(AS2, AString(x, 1, +1.0, 1, 0))
pl.plot(x, AS3,  label='AStrings Sum', linewidth=2)
pl.title('Atomic Strings compose Line')
pl.legend(loc='best', numpoints=1)
pl.grid(True)
pl.show()
Explanation: 4.6. Partition of Line from Atomic String functions
Combination/summation of Atomic Strings can exactly represent a straight line:
x = ...Astring(x-2) + Astring(x-1) + AString(x) + Astring(x+1) + Astring(x+2)...
<font color=maroon>x = ...Astring(x-2) + Astring(x-1) + AString(x) + Astring(x+1) + Astring(x+2)...</font>
Partition based on AString function with width 1 and height 1
End of explanation
x = np.arange(-40.0, 40.0, 0.01)
width  = 10.0
height = 10.0
#pl.plot(x, ABline (x, 1, 0),            label='ABLine 1*x')
pl.plot(x, AString(x, width, -3*width/2, height, -3*width/2), '--',  linewidth=1, label='AString 1')
pl.plot(x, AString(x, width, -1*width/2, height, -1*width/2), '--',  linewidth=1, label='AString 2')
pl.plot(x, AString(x, width, +1*width/2, height, +1*width/2), '--',  linewidth=1, label='AString 3')
pl.plot(x, AString(x, width, +3*width/2, height, +3*width/2), '--',  linewidth=1, label='AString 4')
AS2 = Sum(AString(x, width, -3*width/2, height, -3*width/2), AString(x, width, -1*width/2, height, -1*width/2))
AS3 = Sum(AS2, AString(x, width,+1*width/2, height, +1*width/2))
AS4 = Sum(AS3, AString(x, width,+3*width/2, height, +3*width/2))
pl.plot(x, AS4,  label='AStrings Joins', linewidth=2)
pl.title('Atomic Strings Combinations')
pl.legend(loc='best', numpoints=1)
pl.grid(True)
pl.show()
Explanation: Partition based on AString with certain width and height depending on a size of 'quanta'
End of explanation
x = np.arange(-30.0, 30.0, 0.01)
#pl.plot(x, ABline (x, 1, 0),            label='ABLine 1*x')
pl.plot(x, AString(x, 10.0,-15, 10, -15),   '--',  linewidth=1, label='AString Quantum 1')
pl.plot(x, AString(x, 10.0, -5, 10, -5),    '--',  linewidth=1, label='AString Quantum 2')
pl.plot(x, AString(x, 10.0, +5, 10, +5),    '--',  linewidth=1, label='AString Quantum 3')
pl.plot(x, AString(x, 10.0,+15, 10, +15),   '--',  linewidth=1, label='AString Quantum 4')
AS2 = Sum(AString(x, 10.0, -15, 10, -15), AString(x, 10., -5, 10, -5))
AS3 = Sum(AS2, AString(x, 10, +5, 10, +5))
AS4 = Sum(AS3, AString(x, 10,+15, 10, +15))
pl.plot(x, AS4,  label='Spacetime Dimension', linewidth=2)
pl.title('Representing Spacetime by joining of Atomic Strings')
pl.legend(loc='best', numpoints=1)
pl.grid(True)
pl.show()
Explanation: <font color=teal>5. Model of Spacetime composed from AStrings Quanta (AString Metriants)
5.1. This is an abstract of paper "Atomic Strings and Fabric of Spacetime"
Based on a generalization of well-known atomic function this paper introduces an atomic string (AString) as a swing-like function by joining of which on a periodic lattice it is possible to build  one model for absolutely flat and curved spacetime and explain gravitational warping effects due to a unique property of all derivatives being expressed via AString itself. Physically AString may represent a soliton-like elementary string as a spacetime warp/distortion composing atomic quanta in multiple dimensions which can grow, shrink, group into atoms and compose smooth continua, solid and biological matter widespread in nature. This makes AString a good candidate for an elementary string as a fundamental block of matter and spacetime fabric. AString can also be used as a generating axiom for a new non-Archimedean atomic calculus to describe nonlinear metric within cosmic strings and build never overflowing atomic computer with the super fast calculation of derivatives. The AString along with closely related atomic function may find new areas of applications in lattice physics, string theory, relativity, quantum gravity, cosmic strings, multiverse, dark matter, solitons, dislocations, computing, evolution of solid and biological matter, finite element methods, new regression analysis and artificial intelligence classification models.
5.2. Representing spacetime expansion via summation of AStrings quanta
End of explanation
x = np.arange(-50.0, 50.0, 0.1)
dx = x[1] - x[0]
CS6 = Sum(up(x, 5, -30, 5, 5), up(x, 15, 0, 15, 5))
CS6 = Sum(CS6, up(x, 10, +30, 10, 5))
pl.plot(x, CS6,  label='Spacetime Density')
IntC6 = np.cumsum(CS6)*dx/50
pl.plot(x, IntC6, label='Spacetime Shape (Geodesics)')
DerC6 = np.gradient(CS6, dx)
pl.plot(x, DerC6, label='Spacetime Curvature')
LightTrajectory = -10 -IntC6/5
pl.plot(x, LightTrajectory, label='Light Trajectory')
pl.title('Shape of Curved Spacetime model')
pl.legend(loc='best', numpoints=1)
pl.grid(True)
pl.show()
Explanation: 5.3. Model of Spacetime curvature and gravity based on AStrings
Schematic model of Gravitation explaining General Relativity effects where spacetime Shape, Density and Curvature are deeply related to each other being expressed via shifts and stretches of the same AString Atomic Function
End of explanation
#pl.rcParams["figure.figsize"] = 16,12
book = pl.imread('BookSpread_small.png')
pl.imshow(book)
Explanation: <font color=teal>6. 'Soliton Nature' book</font>
6.1. The theory is also described in a book 'Soliton Nature'
Soliton Nature book is easy-to-read, pictorial, interactive book which uses beautiful photography, video channel, and computer scripts in R and Python to demonstrate existing and explore new solitons – the magnificent and versatile energy concentration phenomenon of nature.  New class of atomic solitons can be used to describe Higgs boson (‘the god particle’) fields, spacetime quanta and other fundamental building blocks of nature.
End of explanation
<END_TASK>