diff --git a/docs/documentation.aux b/docs/documentation.aux
index 914bbb8a13d275b3f5a73648c90d47187351d87d..0aaf0d2f43d641d951dd31323b2b85e984d02cd5 100644
--- a/docs/documentation.aux
+++ b/docs/documentation.aux
@@ -19,11 +19,11 @@
 \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces The achieved visual look\relax }}{1}{figure.caption.1}\protected@file@percent }
 \providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
 \newlabel{fig:teaser}{{1}{1}{The achieved visual look\relax }{figure.caption.1}{}}
+\providecommand \oddpage@label [2]{}
 \@writefile{toc}{\contentsline {section}{Abstract}{1}{section*.2}\protected@file@percent }
 \@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{section.1}\protected@file@percent }
 \citation{PixarPaper}
 \citation{PixarPaper}
-\citation{PixarPaper}
 \citation{MullerPBD}
 \citation{UmenhofferSimulation}
 \citation{MullerPBD}
@@ -33,25 +33,42 @@
 \@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Mass Spring System}{2}{subsection.2.1}\protected@file@percent }
 \@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Position Based Dynamics (PBD)}{2}{subsection.2.2}\protected@file@percent }
 \@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Follow-the-Leader (FTL)}{2}{subsection.2.3}\protected@file@percent }
-\@writefile{toc}{\contentsline {section}{\numberline {3}Results}{2}{section.3}\protected@file@percent }
-\@writefile{toc}{\contentsline {section}{\numberline {4}Conclusion}{2}{section.4}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {3}Simulation of a Single Hair Strand}{2}{section.3}\protected@file@percent }
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}A Particle}{2}{subsection.3.1}\protected@file@percent }
+\citation{PixarVolumetricHair}
+\citation{FTLHair}
+\citation{RappRealTime}
+\citation{UmenhofferSimulation}
 \bibstyle{ACM-Reference-Format}
 \bibdata{references}
 \bibcite{PixarPaper}{{1}{2013}{{Iben et~al\mbox  {.}}}{{Iben, Meyer, Petrovic, Soares, Anderson, and Witkin}}}
+\@writefile{loa}{\contentsline {algocf}{\numberline {1}{\ignorespaces pseudo code for the PBD simulation\relax }}{3}{algocf.1}\protected@file@percent }
+\newlabel{alg:pseudoPBD}{{1}{3}{A Particle}{algocf.1}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {4}Putting Hair on the Head}{3}{section.4}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {5}Results}{3}{section.5}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {6}Conclusion}{3}{section.6}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {7}Future Work}{3}{section.7}\protected@file@percent }
+\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Hair-hair collisions}{3}{subsection.7.1}\protected@file@percent }
+\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Refinement and proper customizability of the propagation of hair strands on the head object.}{3}{subsection.7.2}\protected@file@percent }
+\@writefile{toc}{\contentsline {subsection}{\numberline {7.3}Better customizability}{3}{subsection.7.3}\protected@file@percent }
+\@writefile{toc}{\contentsline {subsection}{\numberline {7.4}Halton sequence for randomizing hair positions}{3}{subsection.7.4}\protected@file@percent }
+\@writefile{toc}{\contentsline {subsection}{\numberline {7.5}Rendering}{3}{subsection.7.5}\protected@file@percent }
+\@writefile{toc}{\contentsline {subsection}{\numberline {7.6}Moving to the GPU}{3}{subsection.7.6}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{Acknowledgments}{3}{section*.8}\protected@file@percent }
 \bibcite{MullerPBD}{{2}{2007}{{M\"{u}ller et~al\mbox  {.}}}{{M\"{u}ller, Heidelberger, Hennix, and Ratcliff}}}
 \bibcite{FTLHair}{{3}{2012}{{Müller et~al\mbox  {.}}}{{Müller, Kim, and Chentanez}}}
-\bibcite{UmenhofferSimulation}{{4}{2016}{{Umenhoffer et~al\mbox  {.}}}{{Umenhoffer, Marschal, and Suti}}}
+\bibcite{PixarVolumetricHair}{{4}{2006}{{Petrovic et~al\mbox  {.}}}{{Petrovic, Henne, and Pixar}}}
+\bibcite{RappRealTime}{{5}{2014}{{Rapp}}{{Rapp}}}
+\bibcite{UmenhofferSimulation}{{6}{2016}{{Umenhoffer et~al\mbox  {.}}}{{Umenhoffer, Marschal, and Suti}}}
 \newlabel{tocindent-1}{0pt}
 \newlabel{tocindent0}{0pt}
 \newlabel{tocindent1}{6.95pt}
 \newlabel{tocindent2}{13.79999pt}
 \newlabel{tocindent3}{0pt}
-\@writefile{toc}{\contentsline {section}{\numberline {5}Further Work}{3}{section.5}\protected@file@percent }
-\@writefile{toc}{\contentsline {section}{Acknowledgments}{3}{section*.7}\protected@file@percent }
-\@writefile{toc}{\contentsline {section}{References}{3}{section*.9}\protected@file@percent }
-\@writefile{toc}{\contentsline {section}{\numberline {A}Supplementary development}{3}{appendix.A}\protected@file@percent }
-\@writefile{toc}{\contentsline {subsection}{\numberline {A.1}OBJ Reader}{3}{subsection.A.1}\protected@file@percent }
-\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Supported OBJ Data Types\relax }}{3}{table.caption.10}\protected@file@percent }
-\newlabel{tab:objdatatypes}{{1}{3}{Supported OBJ Data Types\relax }{table.caption.10}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {A.2}Recording the simulation on-the-fly}{3}{subsection.A.2}\protected@file@percent }
-\newlabel{TotPages}{{3}{3}{}{page.3}{}}
+\@writefile{toc}{\contentsline {section}{References}{4}{section*.10}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {A}Supplementary development}{4}{appendix.A}\protected@file@percent }
+\@writefile{toc}{\contentsline {subsection}{\numberline {A.1}OBJ Reader}{4}{subsection.A.1}\protected@file@percent }
+\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Supported OBJ Data Types\relax }}{4}{table.caption.11}\protected@file@percent }
+\newlabel{tab:objdatatypes}{{1}{4}{Supported OBJ Data Types\relax }{table.caption.11}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {A.2}Recording the simulation on-the-fly}{4}{subsection.A.2}\protected@file@percent }
+\newlabel{TotPages}{{4}{4}{}{page.4}{}}
diff --git a/docs/documentation.bbl b/docs/documentation.bbl
index ed7f9c6e2ac549723072d2930765c48ce09323d7..63a24cf0233693c816fcbb0e5134f3b7e596738d 100644
--- a/docs/documentation.bbl
+++ b/docs/documentation.bbl
@@ -2,7 +2,7 @@
 %%% Do NOT edit. File created by BibTeX with style
 %%% ACM-Reference-Format-Journals [18-Jan-2012].
 
-\begin{thebibliography}{4}
+\begin{thebibliography}{6}
 
 %%% ====================================================================
 %%% NOTE TO THE USER: you can override these defaults by providing
@@ -91,6 +91,32 @@
 \showDOI{\tempurl}
 
 
+\bibitem[\protect\citeauthoryear{Petrovic, Henne, and Pixar}{Petrovic
+  et~al\mbox{.}}{2006}]%
+        {PixarVolumetricHair}
+\bibfield{author}{\bibinfo{person}{L. Petrovic}, \bibinfo{person}{M. Henne},
+  {and} \bibinfo{person}{John~Anderson Pixar}.}
+  \bibinfo{year}{2006}\natexlab{}.
+\newblock \showarticletitle{Volumetric Methods for Simulation and Rendering of
+  Hair}.
+\newblock
+\urldef\tempurl%
+\url{https://graphics.pixar.com/library/Hair/paper.pdf}
+\showURL{%
+\tempurl}
+
+
+\bibitem[\protect\citeauthoryear{Rapp}{Rapp}{2014}]%
+        {RappRealTime}
+\bibfield{author}{\bibinfo{person}{M. Rapp}.} \bibinfo{year}{2014}\natexlab{}.
+\newblock \showarticletitle{Real-Time Hair Rendering}.
+\newblock
+\urldef\tempurl%
+\url{http://markusrapp.de/wordpress/wp-content/uploads/hair/MarkusRapp-MasterThesis-RealTimeHairRendering.pdf}
+\showURL{%
+\tempurl}
+
+
 \bibitem[\protect\citeauthoryear{Umenhoffer, Marschal, and Suti}{Umenhoffer
   et~al\mbox{.}}{2016}]%
         {UmenhofferSimulation}
diff --git a/docs/documentation.blg b/docs/documentation.blg
index d1cf04e333172d9444b022292a557198dd82c631..c9b4b631bba3490b58f50e8325c587d41bace440 100644
--- a/docs/documentation.blg
+++ b/docs/documentation.blg
@@ -13,49 +13,57 @@ Reallocated glb_str_end (elt_size=4) to 20 items from 10.
 Reallocated singl_function (elt_size=4) to 100 items from 50.
 Warning--empty booktitle in FTLHair
 Warning--no number and no volume in FTLHair
+Warning--empty booktitle in PixarVolumetricHair
+Warning--empty publisher in PixarVolumetricHair
+Warning--empty address in PixarVolumetricHair
+Warning--page numbers missing in both pages and numpages fields in PixarVolumetricHair
+Warning--empty booktitle in RappRealTime
+Warning--empty publisher in RappRealTime
+Warning--empty address in RappRealTime
+Warning--page numbers missing in both pages and numpages fields in RappRealTime
 Warning--empty booktitle in UmenhofferSimulation
 Warning--empty publisher in UmenhofferSimulation
 Warning--empty address in UmenhofferSimulation
 Warning--page numbers missing in both pages and numpages fields in UmenhofferSimulation
-You've used 4 entries,
+You've used 6 entries,
             5959 wiz_defined-function locations,
-            1372 strings with 15950 characters,
-and the built_in function-call counts, 5148 in all, are:
-= -- 641
-> -- 208
+            1384 strings with 16307 characters,
+and the built_in function-call counts, 7075 in all, are:
+= -- 812
+> -- 269
 < -- 0
-+ -- 68
-- -- 64
-* -- 378
-:= -- 502
-add.period$ -- 21
-call.type$ -- 4
-change.case$ -- 32
-chr.to.int$ -- 4
-cite$ -- 10
-duplicate$ -- 438
-empty$ -- 294
-format.name$ -- 80
-if$ -- 1246
++ -- 86
+- -- 84
+* -- 505
+:= -- 692
+add.period$ -- 29
+call.type$ -- 6
+change.case$ -- 44
+chr.to.int$ -- 6
+cite$ -- 20
+duplicate$ -- 644
+empty$ -- 438
+format.name$ -- 104
+if$ -- 1690
 int.to.chr$ -- 2
 int.to.str$ -- 1
-missing$ -- 19
-newline$ -- 85
-num.names$ -- 32
-pop$ -- 172
+missing$ -- 29
+newline$ -- 107
+num.names$ -- 48
+pop$ -- 282
 preamble$ -- 1
-purify$ -- 68
+purify$ -- 98
 quote$ -- 0
-skip$ -- 172
+skip$ -- 240
 stack$ -- 0
-substring$ -- 301
-swap$ -- 54
+substring$ -- 409
+swap$ -- 62
 text.length$ -- 0
 text.prefix$ -- 0
 top$ -- 0
-type$ -- 107
-warning$ -- 6
-while$ -- 18
+type$ -- 167
+warning$ -- 14
+while$ -- 30
 width$ -- 0
-write$ -- 120
-(There were 6 warnings)
+write$ -- 156
+(There were 14 warnings)
diff --git a/docs/documentation.log b/docs/documentation.log
index e287b3acc38b7103689c14b95f5a83615ddc4c43..14924faebef54dced24218cec755469603384ef0 100644
--- a/docs/documentation.log
+++ b/docs/documentation.log
@@ -1,4 +1,4 @@
-This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex 2020.12.8)  8 DEC 2020 15:05
+This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex 2020.12.8)  9 DEC 2020 00:40
 entering extended mode
  restricted \write18 enabled.
  %&-line parsing enabled.
@@ -683,126 +683,192 @@ nuxLibertineT-TLF.
 LaTeX Font Info:    Font shape `T1/LinuxLibertineT-TLF/m/n' will be
 (Font)              scaled to size 10.0pt on input line 3007.
 )
-Package hyperref Info: Option `colorlinks' set `true' on input line 22.
-Package hyperref Info: Option `pdfdisplaydoctitle' set `true' on input line 22.
-
-\c@theorem=\count298
+(/usr/share/texlive/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty
+Package: algorithm2e 2017/07/18 v5.2 algorithms environments
+\c@AlgoLine=\count298
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty
+Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC)
+)
+\algocf@hangindent=\skip75
+
+(/usr/share/texlive/texmf-dist/tex/latex/ifoddpage/ifoddpage.sty
+Package: ifoddpage 2016/04/23 v1.1 Conditionals for odd/even page detection
+\c@checkoddpage=\count299
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty
+Package: xspace 2014/10/28 v1.13 Space after command names (DPC,MH)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/relsize/relsize.sty
+Package: relsize 2013/03/29 ver 4.1
+LaTeX Info: Redefining \larger on input line 150.
+LaTeX Info: Redefining \smaller on input line 151.
+)
+\skiptotal=\skip76
+\skiplinenumber=\skip77
+\skiprule=\skip78
+\skiphlne=\skip79
+\skiptext=\skip80
+\skiplength=\skip81
+\algomargin=\skip82
+\skipalgocfslide=\skip83
+\algowidth=\dimen188
+\inoutsize=\dimen189
+\inoutindent=\dimen190
+\interspacetitleruled=\dimen191
+\interspacealgoruled=\dimen192
+\interspacetitleboxruled=\dimen193
+\algocf@ruledwidth=\skip84
+\algocf@inoutbox=\box53
+\algocf@inputbox=\box54
+\AlCapSkip=\skip85
+\AlCapHSkip=\skip86
+\algoskipindent=\skip87
+\algocf@nlbox=\box55
+\algocf@hangingbox=\box56
+\algocf@untilbox=\box57
+\algocf@skipuntil=\skip88
+\algocf@capbox=\box58
+\algocf@lcaptionbox=\skip89
+\algoheightruledefault=\skip90
+\algoheightrule=\skip91
+\algotitleheightruledefault=\skip92
+\algotitleheightrule=\skip93
+\c@algocfline=\count300
+\c@algocfproc=\count301
+\c@algocf=\count302
+\algocf@algoframe=\box59
+\algocf@algobox=\box60
+)
+(/usr/share/texlive/texmf-dist/tex/latex/algorithms/algorithmic.sty
+Package: algorithmic 2009/08/24 v0.1 Document Style `algorithmic'
+\c@ALC@unique=\count303
+\c@ALC@line=\count304
+\c@ALC@rem=\count305
+\c@ALC@depth=\count306
+\ALC@tlm=\skip94
+\algorithmicindent=\skip95
+)
+Package hyperref Info: Option `colorlinks' set `true' on input line 24.
+Package hyperref Info: Option `pdfdisplaydoctitle' set `true' on input line 24.
+
+\c@theorem=\count307
 
 (/usr/share/texlive/texmf-dist/tex/latex/preprint/balance.sty
 Package: balance 1999/02/23 4.3 (PWD)
-\oldvsize=\dimen188
+\oldvsize=\dimen194
 )
 Include comment 'screenonly' Excluding comment 'printonly'
 Include comment 'anonsuppress'
 (/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def
 File: l3backend-pdfmode.def 2020-02-03 L3 backend support: PDF mode
-\l__kernel_color_stack_int=\count299
-\l__pdf_internal_box=\box53
+\l__kernel_color_stack_int=\count308
+\l__pdf_internal_box=\box61
 )
 (./documentation.aux)
 \openout1 = `documentation.aux'.
 
-LaTeX Font Info:    Checking defaults for OML/nxlmi/m/it on input line 22.
+LaTeX Font Info:    Checking defaults for OML/nxlmi/m/it on input line 24.
 LaTeX Font Info:    Trying to load font information for OML+nxlmi on input line
- 22.
+ 24.
 
 (/usr/share/texlive/texmf-dist/tex/latex/newtx/omlnxlmi.fd
 File: omlnxlmi.fd 2013/11/19 Fontinst v1.933 font definitions for OML/nxlmi.
 )
-LaTeX Font Info:    ... okay on input line 22.
-LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 22.
-LaTeX Font Info:    ... okay on input line 22.
-LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 22.
-LaTeX Font Info:    ... okay on input line 22.
-LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 22.
-LaTeX Font Info:    ... okay on input line 22.
-LaTeX Font Info:    Checking defaults for TS1/cmr/m/n on input line 22.
-LaTeX Font Info:    ... okay on input line 22.
-LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 22.
-LaTeX Font Info:    ... okay on input line 22.
-LaTeX Font Info:    Checking defaults for U/ntxexa/m/n on input line 22.
+LaTeX Font Info:    ... okay on input line 24.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 24.
+LaTeX Font Info:    ... okay on input line 24.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 24.
+LaTeX Font Info:    ... okay on input line 24.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 24.
+LaTeX Font Info:    ... okay on input line 24.
+LaTeX Font Info:    Checking defaults for TS1/cmr/m/n on input line 24.
+LaTeX Font Info:    ... okay on input line 24.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 24.
+LaTeX Font Info:    ... okay on input line 24.
+LaTeX Font Info:    Checking defaults for U/ntxexa/m/n on input line 24.
 LaTeX Font Info:    Trying to load font information for U+ntxexa on input line 
-22.
+24.
 
 (/usr/share/texlive/texmf-dist/tex/latex/newtx/untxexa.fd
 File: untxexa.fd 2012/04/16 Fontinst v1.933 font definitions for U/ntxexa.
 )
-LaTeX Font Info:    ... okay on input line 22.
-LaTeX Font Info:    Checking defaults for PD1/pdf/m/n on input line 22.
-LaTeX Font Info:    ... okay on input line 22.
-LaTeX Font Info:    Checking defaults for PU/pdf/m/n on input line 22.
-LaTeX Font Info:    ... okay on input line 22.
-LaTeX Font Info:    Checking defaults for LMS/ntxsy/m/n on input line 22.
+LaTeX Font Info:    ... okay on input line 24.
+LaTeX Font Info:    Checking defaults for PD1/pdf/m/n on input line 24.
+LaTeX Font Info:    ... okay on input line 24.
+LaTeX Font Info:    Checking defaults for PU/pdf/m/n on input line 24.
+LaTeX Font Info:    ... okay on input line 24.
+LaTeX Font Info:    Checking defaults for LMS/ntxsy/m/n on input line 24.
 LaTeX Font Info:    Trying to load font information for LMS+ntxsy on input line
- 22.
+ 24.
 
 (/usr/share/texlive/texmf-dist/tex/latex/newtx/lmsntxsy.fd
 File: lmsntxsy.fd 2016/07/02 Fontinst v1.933 font definitions for LMS/ntxsy.
 )
-LaTeX Font Info:    ... okay on input line 22.
-LaTeX Font Info:    Checking defaults for LMX/ntxexx/m/n on input line 22.
+LaTeX Font Info:    ... okay on input line 24.
+LaTeX Font Info:    Checking defaults for LMX/ntxexx/m/n on input line 24.
 LaTeX Font Info:    Trying to load font information for LMX+ntxexx on input lin
-e 22.
+e 24.
 
 (/usr/share/texlive/texmf-dist/tex/latex/newtx/lmxntxexx.fd
 File: lmxntxexx.fd 2016/07/03 Fontinst v1.933 font definitions for LMX/ntxexx.
 )
-LaTeX Font Info:    ... okay on input line 22.
+LaTeX Font Info:    ... okay on input line 24.
 LaTeX Font Info:    Font shape `T1/LinuxLibertineT-TLF/m/n' will be
-(Font)              scaled to size 8.0pt on input line 22.
+(Font)              scaled to size 8.0pt on input line 24.
 LaTeX Font Info:    Trying to load font information for OT1+LinuxLibertineT-TLF
- on input line 22.
+ on input line 24.
 
 (/usr/share/texlive/texmf-dist/tex/latex/libertine/OT1LinuxLibertineT-TLF.fd
 File: OT1LinuxLibertineT-TLF.fd 2017/03/20 (autoinst) Font definitions for OT1/
 LinuxLibertineT-TLF.
 )
 LaTeX Font Info:    Font shape `OT1/LinuxLibertineT-TLF/m/n' will be
-(Font)              scaled to size 8.0pt on input line 22.
+(Font)              scaled to size 8.0pt on input line 24.
 <<ot1.cmap>>
 LaTeX Font Info:    Font shape `OT1/LinuxLibertineT-TLF/m/n' will be
-(Font)              scaled to size 6.2pt on input line 22.
+(Font)              scaled to size 6.2pt on input line 24.
 LaTeX Font Info:    Font shape `OT1/LinuxLibertineT-TLF/m/n' will be
-(Font)              scaled to size 5.5pt on input line 22.
+(Font)              scaled to size 5.5pt on input line 24.
 <<oml.cmap>>
-LaTeX Font Info:    Trying to load font information for U+msa on input line 22.
+LaTeX Font Info:    Trying to load font information for U+msa on input line 24.
 
 
 (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd
 File: umsa.fd 2013/01/14 v3.01 AMS symbols A
 )
-LaTeX Font Info:    Trying to load font information for U+msb on input line 22.
+LaTeX Font Info:    Trying to load font information for U+msb on input line 24.
 
 
 (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
 File: umsb.fd 2013/01/14 v3.01 AMS symbols B
 )
 LaTeX Font Info:    Trying to load font information for U+ntxmia on input line 
-22.
+24.
 
 (/usr/share/texlive/texmf-dist/tex/latex/newtx/untxmia.fd
 File: untxmia.fd 2018/04/14 Fontinst v1.933 font definitions for U/ntxmia.
 )
 LaTeX Font Info:    Trying to load font information for U+ntxsym on input line 
-22.
+24.
 
 (/usr/share/texlive/texmf-dist/tex/latex/newtx/untxsym.fd
 File: untxsym.fd 2015/03/20 Fontinst v1.933 font definitions for U/ntxsym.
 )
 LaTeX Font Info:    Trying to load font information for U+ntxsyc on input line 
-22.
+24.
 
 (/usr/share/texlive/texmf-dist/tex/latex/newtx/untxsyc.fd
 File: untxsyc.fd 2012/04/12 Fontinst v1.933 font definitions for U/ntxsyc.
 )
-LaTeX Info: Redefining \microtypecontext on input line 22.
+LaTeX Info: Redefining \microtypecontext on input line 24.
 Package microtype Info: Generating PDF output.
 Package microtype Info: Character protrusion enabled (level 2).
 Package microtype Info: Using default protrusion set `alltext'.
 Package microtype Info: Automatic font expansion enabled (level 2),
 (microtype)             stretch: 20, shrink: 20, step: 1, non-selected.
 Package microtype Info: Using default expansion set `basictext'.
-LaTeX Info: Redefining \showhyphens on input line 22.
+LaTeX Info: Redefining \showhyphens on input line 24.
 Package microtype Info: No adjustment of tracking.
 Package microtype Info: No adjustment of interword spacing.
 Package microtype Info: No adjustment of character kerning.
@@ -812,8 +878,8 @@ Package microtype Info: Loading generic protrusion settings for font family
 (microtype)             See the microtype manual for details.
 
 ABD: EveryShipout initializing macros
-\AtBeginShipoutBox=\box54
-Package hyperref Info: Link coloring ON on input line 22.
+\AtBeginShipoutBox=\box62
+Package hyperref Info: Link coloring ON on input line 24.
 
 (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
 Package: nameref 2019/09/16 v2.46 Cross-referencing by name of section
@@ -821,11 +887,11 @@ Package: nameref 2019/09/16 v2.46 Cross-referencing by name of section
 (/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
 Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO)
 )
-\c@section@level=\count300
+\c@section@level=\count309
 )
-LaTeX Info: Redefining \ref on input line 22.
-LaTeX Info: Redefining \pageref on input line 22.
-LaTeX Info: Redefining \nameref on input line 22.
+LaTeX Info: Redefining \ref on input line 24.
+LaTeX Info: Redefining \pageref on input line 24.
+LaTeX Info: Redefining \nameref on input line 24.
 
 (./documentation.out) (./documentation.out)
 \@outlinefile=\write4
@@ -840,16 +906,16 @@ File: se-utf8.def 2019/11/29 v1.12 stringenc: UTF-8
 )
 (/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
 [Loading MPS to PDF converter (version 2006.09.02).]
-\scratchcounter=\count301
-\scratchdimen=\dimen189
-\scratchbox=\box55
-\nofMPsegments=\count302
-\nofMParguments=\count303
+\scratchcounter=\count310
+\scratchdimen=\dimen195
+\scratchbox=\box63
+\nofMPsegments=\count311
+\nofMParguments=\count312
 \everyMPshowfont=\toks35
-\MPscratchCnt=\count304
-\MPscratchDim=\dimen190
-\MPnumerator=\count305
-\makeMPintoPDFobject=\count306
+\MPscratchCnt=\count313
+\MPscratchDim=\dimen196
+\MPnumerator=\count314
+\makeMPintoPDFobject=\count315
 \everyMPtoPDFconversion=\toks36
 ) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
 Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
@@ -894,8 +960,8 @@ e
 * \@reversemarginfalse
 * (1in=72.27pt=25.4mm, 1cm=28.453pt)
 
-\c@mv@tabular=\count307
-\c@mv@boldtabular=\count308
+\c@mv@tabular=\count316
+\c@mv@boldtabular=\count317
 (/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty
 Package: upquote 2012/04/19 v1.3 upright-quote and grave-accent glyphs in verba
 tim
@@ -906,38 +972,38 @@ Package caption Info: End \AtBeginDocument code.
 
 Excluding 'CCSXML' comment.
 LaTeX Font Info:    Font shape `T1/LinuxLibertineT-TLF/m/n' will be
-(Font)              scaled to size 20.74pt on input line 109.
+(Font)              scaled to size 20.74pt on input line 111.
 LaTeX Font Info:    Font shape `T1/LinuxLibertineT-TLF/b/n' will be
-(Font)              scaled to size 20.74pt on input line 109.
+(Font)              scaled to size 20.74pt on input line 111.
 LaTeX Font Info:    Font shape `T1/LinuxLibertineT-TLF/b/n' will be
-(Font)              scaled to size 10.0pt on input line 109.
+(Font)              scaled to size 10.0pt on input line 111.
 LaTeX Font Info:    Font shape `T1/LinuxLibertineT-TLF/b/n' will be
-(Font)              scaled to size 14.4pt on input line 109.
+(Font)              scaled to size 14.4pt on input line 111.
 LaTeX Font Info:    Font shape `T1/LinuxLibertineT-TLF/m/n' will be
-(Font)              scaled to size 14.4pt on input line 109.
+(Font)              scaled to size 14.4pt on input line 111.
 LaTeX Font Info:    Font shape `T1/LinuxLibertineT-TLF/m/n' will be
-(Font)              scaled to size 12.0pt on input line 109.
+(Font)              scaled to size 12.0pt on input line 111.
 LaTeX Font Info:    Trying to load font information for T1+LinuxBiolinumT-TLF o
-n input line 109.
+n input line 111.
 
 (/usr/share/texlive/texmf-dist/tex/latex/libertine/T1LinuxBiolinumT-TLF.fd
 File: T1LinuxBiolinumT-TLF.fd 2017/03/20 (autoinst) Font definitions for T1/Lin
 uxBiolinumT-TLF.
 )
 LaTeX Font Info:    Font shape `T1/LinuxBiolinumT-TLF/m/n' will be
-(Font)              scaled to size 10.0pt on input line 109.
+(Font)              scaled to size 10.0pt on input line 111.
 Package microtype Info: Loading generic protrusion settings for font family
 (microtype)             `LinuxBiolinumT-TLF' (encoding: T1).
 (microtype)             For optimal results, create family-specific settings.
 (microtype)             See the microtype manual for details.
 LaTeX Font Info:    Font shape `OT1/LinuxLibertineT-TLF/m/n' will be
-(Font)              scaled to size 10.0pt on input line 109.
+(Font)              scaled to size 10.0pt on input line 111.
 Package microtype Info: Loading generic protrusion settings for font family
 (microtype)             `LinuxLibertineT-TLF' (encoding: OT1).
 (microtype)             For optimal results, create family-specific settings.
 (microtype)             See the microtype manual for details.
 LaTeX Font Info:    Font shape `OT1/LinuxLibertineT-TLF/m/n' will be
-(Font)              scaled to size 7.3pt on input line 109.
+(Font)              scaled to size 7.3pt on input line 111.
 
 (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msa.cfg
 File: mt-msa.cfg 2006/02/04 v1.1 microtype config. file: AMS symbols (a) (RS)
@@ -945,38 +1011,38 @@ File: mt-msa.cfg 2006/02/04 v1.1 microtype config. file: AMS symbols (a) (RS)
 (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msb.cfg
 File: mt-msb.cfg 2005/06/01 v1.0 microtype config. file: AMS symbols (b) (RS)
 )
-<teaser.png, id=63, 602.25pt x 401.5pt>
+<teaser.png, id=99, 602.25pt x 401.5pt>
 File: teaser.png Graphic file (type png)
 <use teaser.png>
-Package pdftex.def Info: teaser.png  used on input line 109.
+Package pdftex.def Info: teaser.png  used on input line 111.
 (pdftex.def)             Requested size: 505.89pt x 337.27606pt.
 LaTeX Font Info:    Font shape `T1/LinuxLibertineT-TLF/b/n' will be
-(Font)              scaled to size 12.0pt on input line 109.
+(Font)              scaled to size 12.0pt on input line 111.
 LaTeX Font Info:    Font shape `T1/LinuxLibertineT-TLF/m/n' will be
-(Font)              scaled to size 7.3pt on input line 109.
+(Font)              scaled to size 7.3pt on input line 111.
 LaTeX Font Info:    Font shape `T1/LinuxLibertineT-TLF/m/n' will be
-(Font)              scaled to size 6.2pt on input line 109.
+(Font)              scaled to size 6.2pt on input line 111.
 LaTeX Font Info:    Font shape `T1/LinuxBiolinumT-TLF/m/n' will be
-(Font)              scaled to size 8.0pt on input line 109.
+(Font)              scaled to size 8.0pt on input line 111.
 LaTeX Font Info:    Font shape `T1/LinuxLibertineT-TLF/b/it' will be
-(Font)              scaled to size 10.0pt on input line 109.
+(Font)              scaled to size 10.0pt on input line 111.
 LaTeX Font Info:    Trying to load font information for TS1+LinuxLibertineT-TLF
- on input line 109.
+ on input line 111.
 
 (/usr/share/texlive/texmf-dist/tex/latex/libertine/TS1LinuxLibertineT-TLF.fd
 File: TS1LinuxLibertineT-TLF.fd 2017/03/20 (autoinst) Font definitions for TS1/
 LinuxLibertineT-TLF.
 )
 LaTeX Font Info:    Font shape `TS1/LinuxLibertineT-TLF/m/n' will be
-(Font)              scaled to size 10.0pt on input line 109.
+(Font)              scaled to size 10.0pt on input line 111.
 Package microtype Info: Loading generic protrusion settings for font family
 (microtype)             `LinuxLibertineT-TLF' (encoding: TS1).
 (microtype)             For optimal results, create family-specific settings.
 (microtype)             See the microtype manual for details.
 LaTeX Font Info:    Font shape `T1/LinuxLibertineT-TLF/m/it' will be
-(Font)              scaled to size 10.0pt on input line 109.
+(Font)              scaled to size 10.0pt on input line 111.
 
-Overfull \hbox (5.12202pt too wide) in paragraph at lines 109--109
+Overfull \hbox (5.12202pt too wide) in paragraph at lines 111--111
  []\T1/LinuxLibertineT-TLF/b/it/10 Keywords: \T1/LinuxLibertineT-TLF/m/n/10 (-2
 0) hair sim-u-la-tion, po-si-tion based dy-nam-ics, OpenGL 
  []
@@ -984,39 +1050,77 @@ Overfull \hbox (5.12202pt too wide) in paragraph at lines 109--109
 [1.1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}
 
  <./teaser.png>]
-Underfull \vbox (badness 7667) has occurred while \output is active []
+LaTeX Font Info:    Font shape `OT1/LinuxLibertineT-TLF/sb/n' will be
+(Font)              scaled to size 10.0pt on input line 213.
+LaTeX Font Info:    Font shape `OT1/LinuxLibertineT-TLF/sb/n' will be
+(Font)              scaled to size 7.3pt on input line 213.
+LaTeX Font Info:    Font shape `OT1/LinuxLibertineT-TLF/sb/n' will be
+(Font)              scaled to size 5.5pt on input line 213.
+
+Overfull \hbox (20.05922pt too wide) in paragraph at lines 221--226
+[]\T1/LinuxLibertineT-TLF/m/n/10 (-20) Constraint $\OML/nxlmi/m/it/10 c$ \T1/Li
+nuxLibertineT-TLF/m/n/10 (-20) with type \T1/LinuxLibertineT-TLF/m/it/10 (-20) 
+equal-ity \T1/LinuxLibertineT-TLF/m/n/10 (-20) is sat-is-fied if $\OML/nxlmi/m/
+it/10 C[]\LMS/ntxsy/m/n/10 �[][]\OML/nxlmi/m/it/10 ; [] ; [][]\LMS/ntxsy/m/n/10
+ � \U/ntxmia/m/it/10 =
+ []
 
- [2.2]
-Processing 'acks' comment.
-\openout3 = `comment.cut'.
 
- Comment 'acks' writing to comment.cut.
-Straight input of comment.cut. (./comment.cut) (./documentation.bbl
-LaTeX Font Info:    Font shape `T1/LinuxLibertineT-TLF/m/it' will be
-(Font)              scaled to size 8.0pt on input line 49.
-LaTeX Info: Redefining \tempurl on input line 75.
-LaTeX Info: Redefining \tempurl on input line 90.
-)
-LaTeX Font Info:    Trying to load font information for T1+zi4 on input line 27
+Overfull \hbox (12.99283pt too wide) in paragraph at lines 221--226
+\OT1/LinuxLibertineT-TLF/m/n/10 (-20) 0$\T1/LinuxLibertineT-TLF/m/n/10 (-20) . 
+If its type is \T1/LinuxLibertineT-TLF/m/it/10 (-20) in-equal-ity\T1/LinuxLiber
+tineT-TLF/m/n/10 (-20) , then it is sat-is-fied if $\OML/nxlmi/m/it/10 C[]\LMS/
+ntxsy/m/n/10 �[][]\OML/nxlmi/m/it/10 ; [] ; [][]\LMS/ntxsy/m/n/10 � ^^U
+ []
+
+
+Overfull \hbox (10.0pt too wide) detected at line 237
+[][] 
+ []
+
+
+Underfull \vbox (badness 10000) has occurred while \output is active []
+
+ [2.2]
+LaTeX Font Info:    Trying to load font information for T1+zi4 on input line 23
 9.
 
 (/usr/share/texlive/texmf-dist/tex/latex/inconsolata/t1zi4.fd
 File: t1zi4.fd 2018/01/14 T1/zi4 (Inconsolata)
 )
 LaTeX Font Info:    Font shape `T1/zi4/m/n' will be
-(Font)              scaled to size 10.0pt on input line 279.
+(Font)              scaled to size 10.0pt on input line 239.
 Package microtype Info: Loading generic protrusion settings for font family
 (microtype)             `zi4' (encoding: T1).
 (microtype)             For optimal results, create family-specific settings.
 (microtype)             See the microtype manual for details.
 
-Overfull \hbox (11.38634pt too wide) in paragraph at lines 331--334
+Processing 'acks' comment.
+\openout3 = `comment.cut'.
+
+ Comment 'acks' writing to comment.cut.
+Straight input of comment.cut. (./comment.cut) (./documentation.bbl
+LaTeX Font Info:    Font shape `T1/LinuxLibertineT-TLF/m/it' will be
+(Font)              scaled to size 8.0pt on input line 49.
+ [3.3]
+LaTeX Info: Redefining \tempurl on input line 75.
+LaTeX Info: Redefining \tempurl on input line 90.
+LaTeX Info: Redefining \tempurl on input line 104.
+LaTeX Info: Redefining \tempurl on input line 115.
+
+Underfull \hbox (badness 10000) in paragraph at lines 111--118
+\T1/LinuxBiolinumT-TLF/m/n/8 (+20) wordpress / wp -[] content / uploads / hair 
+/ MarkusRapp -[] MasterThesis -[]
+ []
+
+)
+Overfull \hbox (11.38634pt too wide) in paragraph at lines 418--421
 \T1/LinuxLibertineT-TLF/m/n/10 (-20) at 24 FPS, with the nam-ing con-ven-tion r
 en-derXXXX[.bmp/.png],
  []
 
 
-Overfull \hbox (3.58836pt too wide) in paragraph at lines 336--340
+Overfull \hbox (3.58836pt too wide) in paragraph at lines 423--427
 \T1/zi4/m/n/10 make_video.sh \T1/LinuxLibertineT-TLF/m/n/10 (-20) script to as-
 sem-ble the \T1/zi4/m/n/10 output.mp4 \T1/LinuxLibertineT-TLF/m/n/10 (-20) and 
 delete
@@ -1026,43 +1130,48 @@ delete
 Package balance Warning: You have called \balance in second column
 (balance)                Columns might not be balanced.
 
-[3.3]
-Package atveryend Info: Empty hook `BeforeClearDocument' on input line 343.
-Package atveryend Info: Empty hook `AfterLastShipout' on input line 343.
+[4.4]
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 429.
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 429.
  (./documentation.aux)
-Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 343.
-Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 343.
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 429.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 429.
 Package rerunfilecheck Info: File `documentation.out' has not changed.
-(rerunfilecheck)             Checksum: DBF0C13B581DE0E363C522F5DE55ECDB;2153.
+(rerunfilecheck)             Checksum: 86A066FEE8792F691364A237681A9047;4299.
  ) 
 Here is how much of TeX's memory you used:
- 19112 strings out of 481239
- 287292 string characters out of 5920377
- 588528 words of memory out of 5000000
- 33600 multiletter control sequences out of 15000+600000
- 660874 words of font info for 227 fonts, out of 8000000 for 9000
+ 20382 strings out of 481239
+ 307739 string characters out of 5920377
+ 618891 words of memory out of 5000000
+ 34760 multiletter control sequences out of 15000+600000
+ 684959 words of font info for 292 fonts, out of 8000000 for 9000
  1302 hyphenation exceptions out of 8191
- 63i,15n,100p,804b,468s stack positions out of 5000i,500n,10000p,200000b,80000s
+ 63i,15n,100p,804b,592s stack positions out of 5000i,500n,10000p,200000b,80000s
 {/usr/share/texlive/texmf-dist/fonts/enc/dvips/inconsolata/i4-t1-4.enc}{/usr/
-share/texlive/texmf-dist/fonts/enc/dvips/libertine/lbtn_7grukw.enc}{/usr/share/
-texlive/texmf-dist/fonts/enc/dvips/libertine/lbtn_naooyc.enc}{/usr/share/texliv
-e/texmf-dist/fonts/enc/dvips/libertine/lbtn_ki75ao.enc}{/usr/share/texlive/texm
-f-dist/fonts/enc/dvips/libertine/lbtn_25tcsq.enc}{/usr/share/texlive/texmf-dist
-/fonts/enc/dvips/libertine/lbtn_76gpa5.enc}{/usr/share/texlive/texmf-dist/fonts
-/enc/dvips/libertine/lbtn_nh77jq.enc}</usr/share/texlive/texmf-dist/fonts/type1
-/public/inconsolata/Inconsolata-zi4r.pfb></usr/share/texlive/texmf-dist/fonts/t
-ype1/public/newtx/LibertineMathMI.pfb></usr/share/texlive/texmf-dist/fonts/type
-1/public/libertine/LinBiolinumT.pfb></usr/share/texlive/texmf-dist/fonts/type1/
-public/libertine/LinLibertineT.pfb></usr/share/texlive/texmf-dist/fonts/type1/p
-ublic/libertine/LinLibertineTB.pfb></usr/share/texlive/texmf-dist/fonts/type1/p
-ublic/libertine/LinLibertineTBI.pfb></usr/share/texlive/texmf-dist/fonts/type1/
-public/libertine/LinLibertineTI.pfb></usr/share/texlive/texmf-dist/fonts/type1/
-public/newtx/txmiaX.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/newtx
-/txsys.pfb>
-Output written on documentation.pdf (3 pages, 437482 bytes).
+share/texlive/texmf-dist/fonts/enc/dvips/libertine/lbtn_oexx6f.enc}{/usr/share/
+texlive/texmf-dist/fonts/enc/dvips/libertine/lbtn_7grukw.enc}{/usr/share/texliv
+e/texmf-dist/fonts/enc/dvips/libertine/lbtn_naooyc.enc}{/usr/share/texlive/texm
+f-dist/fonts/enc/dvips/libertine/lbtn_ki75ao.enc}{/usr/share/texlive/texmf-dist
+/fonts/enc/dvips/libertine/lbtn_25tcsq.enc}{/usr/share/texlive/texmf-dist/fonts
+/enc/dvips/libertine/lbtn_76gpa5.enc}{/usr/share/texlive/texmf-dist/fonts/enc/d
+vips/libertine/lbtn_nh77jq.enc}</usr/share/texlive/texmf-dist/fonts/type1/publi
+c/inconsolata/Inconsolata-zi4r.pfb></usr/share/texlive/texmf-dist/fonts/type1/p
+ublic/newtx/LibertineMathBMI.pfb></usr/share/texlive/texmf-dist/fonts/type1/pub
+lic/newtx/LibertineMathBMI7.pfb></usr/share/texlive/texmf-dist/fonts/type1/publ
+ic/newtx/LibertineMathMI.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/
+newtx/LibertineMathMI5.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/ne
+wtx/LibertineMathMI7.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/libe
+rtine/LinBiolinumT.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/libert
+ine/LinLibertineT.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/liberti
+ne/LinLibertineTB.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/liberti
+ne/LinLibertineTBI.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/libert
+ine/LinLibertineTI.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/newtx/
+txmiaX.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/txsyb.pfb>
+</usr/share/texlive/texmf-dist/fonts/type1/public/newtx/txsys.pfb>
+Output written on documentation.pdf (4 pages, 476184 bytes).
 PDF statistics:
- 197 PDF objects out of 1000 (max. 8388607)
- 166 compressed objects within 2 object streams
- 37 named destinations out of 1000 (max. 500000)
- 36486 words of extra memory for PDF output out of 42996 (max. 10000000)
+ 288 PDF objects out of 1000 (max. 8388607)
+ 244 compressed objects within 3 object streams
+ 55 named destinations out of 1000 (max. 500000)
+ 40142 words of extra memory for PDF output out of 42996 (max. 10000000)
 
diff --git a/docs/documentation.out b/docs/documentation.out
index 43fed1b048e313889dd2a315e9a60f19a3b354e4..85d99bc666d59263303301fae3b8f86a6e408655 100644
--- a/docs/documentation.out
+++ b/docs/documentation.out
@@ -4,11 +4,20 @@
 \BOOKMARK [2][-]{subsection.2.1}{\376\377\0002\000.\0001\000\040\000M\000a\000s\000s\000\040\000S\000p\000r\000i\000n\000g\000\040\000S\000y\000s\000t\000e\000m}{section.2}% 4
 \BOOKMARK [2][-]{subsection.2.2}{\376\377\0002\000.\0002\000\040\000P\000o\000s\000i\000t\000i\000o\000n\000\040\000B\000a\000s\000e\000d\000\040\000D\000y\000n\000a\000m\000i\000c\000s\000\040\000\050\000P\000B\000D\000\051}{section.2}% 5
 \BOOKMARK [2][-]{subsection.2.3}{\376\377\0002\000.\0003\000\040\000F\000o\000l\000l\000o\000w\000-\000t\000h\000e\000-\000L\000e\000a\000d\000e\000r\000\040\000\050\000F\000T\000L\000\051}{section.2}% 6
-\BOOKMARK [1][-]{section.3}{\376\377\0003\000\040\000R\000e\000s\000u\000l\000t\000s}{}% 7
-\BOOKMARK [1][-]{section.4}{\376\377\0004\000\040\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n}{}% 8
-\BOOKMARK [1][-]{section.5}{\376\377\0005\000\040\000F\000u\000r\000t\000h\000e\000r\000\040\000W\000o\000r\000k}{}% 9
-\BOOKMARK [1][-]{section*.7}{\376\377\000A\000c\000k\000n\000o\000w\000l\000e\000d\000g\000m\000e\000n\000t\000s}{}% 10
-\BOOKMARK [1][-]{section*.9}{\376\377\000R\000e\000f\000e\000r\000e\000n\000c\000e\000s}{}% 11
-\BOOKMARK [1][-]{appendix.A}{\376\377\000A\000\040\000S\000u\000p\000p\000l\000e\000m\000e\000n\000t\000a\000r\000y\000\040\000d\000e\000v\000e\000l\000o\000p\000m\000e\000n\000t}{}% 12
-\BOOKMARK [2][-]{subsection.A.1}{\376\377\000A\000.\0001\000\040\000O\000B\000J\000\040\000R\000e\000a\000d\000e\000r}{appendix.A}% 13
-\BOOKMARK [2][-]{subsection.A.2}{\376\377\000A\000.\0002\000\040\000R\000e\000c\000o\000r\000d\000i\000n\000g\000\040\000t\000h\000e\000\040\000s\000i\000m\000u\000l\000a\000t\000i\000o\000n\000\040\000o\000n\000-\000t\000h\000e\000-\000f\000l\000y}{appendix.A}% 14
+\BOOKMARK [1][-]{section.3}{\376\377\0003\000\040\000S\000i\000m\000u\000l\000a\000t\000i\000o\000n\000\040\000o\000f\000\040\000a\000\040\000S\000i\000n\000g\000l\000e\000\040\000H\000a\000i\000r\000\040\000S\000t\000r\000a\000n\000d}{}% 7
+\BOOKMARK [2][-]{subsection.3.1}{\376\377\0003\000.\0001\000\040\000A\000\040\000P\000a\000r\000t\000i\000c\000l\000e}{section.3}% 8
+\BOOKMARK [1][-]{section.4}{\376\377\0004\000\040\000P\000u\000t\000t\000i\000n\000g\000\040\000H\000a\000i\000r\000\040\000o\000n\000\040\000t\000h\000e\000\040\000H\000e\000a\000d}{}% 9
+\BOOKMARK [1][-]{section.5}{\376\377\0005\000\040\000R\000e\000s\000u\000l\000t\000s}{}% 10
+\BOOKMARK [1][-]{section.6}{\376\377\0006\000\040\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n}{}% 11
+\BOOKMARK [1][-]{section.7}{\376\377\0007\000\040\000F\000u\000t\000u\000r\000e\000\040\000W\000o\000r\000k}{}% 12
+\BOOKMARK [2][-]{subsection.7.1}{\376\377\0007\000.\0001\000\040\000H\000a\000i\000r\000-\000h\000a\000i\000r\000\040\000c\000o\000l\000l\000i\000s\000i\000o\000n\000s}{section.7}% 13
+\BOOKMARK [2][-]{subsection.7.2}{\376\377\0007\000.\0002\000\040\000R\000e\000f\000i\000n\000e\000m\000e\000n\000t\000\040\000a\000n\000d\000\040\000p\000r\000o\000p\000e\000r\000\040\000c\000u\000s\000t\000o\000m\000i\000z\000a\000b\000i\000l\000i\000t\000y\000\040\000o\000f\000\040\000t\000h\000e\000\040\000p\000r\000o\000p\000a\000g\000a\000t\000i\000o\000n\000\040\000o\000f\000\040\000h\000a\000i\000r\000\040\000s\000t\000r\000a\000n\000d\000s\000\040\000o\000n\000\040\000t\000h\000e\000\040\000h\000e\000a\000d\000\040\000o\000b\000j\000e\000c\000t\000.}{section.7}% 14
+\BOOKMARK [2][-]{subsection.7.3}{\376\377\0007\000.\0003\000\040\000B\000e\000t\000t\000e\000r\000\040\000c\000u\000s\000t\000o\000m\000i\000z\000a\000b\000i\000l\000i\000t\000y}{section.7}% 15
+\BOOKMARK [2][-]{subsection.7.4}{\376\377\0007\000.\0004\000\040\000H\000a\000l\000t\000o\000n\000\040\000s\000e\000q\000u\000e\000n\000c\000e\000\040\000f\000o\000r\000\040\000r\000a\000n\000d\000o\000m\000i\000z\000i\000n\000g\000\040\000h\000a\000i\000r\000\040\000p\000o\000s\000i\000t\000i\000o\000n\000s}{section.7}% 16
+\BOOKMARK [2][-]{subsection.7.5}{\376\377\0007\000.\0005\000\040\000R\000e\000n\000d\000e\000r\000i\000n\000g}{section.7}% 17
+\BOOKMARK [2][-]{subsection.7.6}{\376\377\0007\000.\0006\000\040\000M\000o\000v\000i\000n\000g\000\040\000t\000o\000\040\000t\000h\000e\000\040\000G\000P\000U}{section.7}% 18
+\BOOKMARK [1][-]{section*.8}{\376\377\000A\000c\000k\000n\000o\000w\000l\000e\000d\000g\000m\000e\000n\000t\000s}{}% 19
+\BOOKMARK [1][-]{section*.10}{\376\377\000R\000e\000f\000e\000r\000e\000n\000c\000e\000s}{}% 20
+\BOOKMARK [1][-]{appendix.A}{\376\377\000A\000\040\000S\000u\000p\000p\000l\000e\000m\000e\000n\000t\000a\000r\000y\000\040\000d\000e\000v\000e\000l\000o\000p\000m\000e\000n\000t}{}% 21
+\BOOKMARK [2][-]{subsection.A.1}{\376\377\000A\000.\0001\000\040\000O\000B\000J\000\040\000R\000e\000a\000d\000e\000r}{appendix.A}% 22
+\BOOKMARK [2][-]{subsection.A.2}{\376\377\000A\000.\0002\000\040\000R\000e\000c\000o\000r\000d\000i\000n\000g\000\040\000t\000h\000e\000\040\000s\000i\000m\000u\000l\000a\000t\000i\000o\000n\000\040\000o\000n\000-\000t\000h\000e\000-\000f\000l\000y}{appendix.A}% 23
diff --git a/docs/documentation.pdf b/docs/documentation.pdf
index e8a5888b1a5c337099cb18a519f63c03afe05681..2b0f0a0f7463aec6bb2994b27783be1479b60fcf 100644
Binary files a/docs/documentation.pdf and b/docs/documentation.pdf differ
diff --git a/docs/documentation.tex b/docs/documentation.tex
index 7e137e7550d71f96d7da09e0aa47cdaab271ea3a..1077027df5db5414d0a7179b35aea583fcac538d 100644
--- a/docs/documentation.tex
+++ b/docs/documentation.tex
@@ -17,6 +17,8 @@
 \newcommand{\specialcell}[2][t]{%
   \begin{tabular}[#1]{@{}l@{}}#2\end{tabular}}
 
+\usepackage[]{algorithm2e}
+\usepackage{algorithmic}
 
 %% end of the preamble, start of the body of the document source.
 \begin{document}
@@ -141,22 +143,18 @@ movie Brave.
 This approach models the hair as a chain of particles with given mass, each
 connected via springs. This results in a mass-spring system, which is then
 modelled by considering well-known physics formula's such as Newton's second law
-of motion (``$F=m*a$'', and Hooke's Law, which states that the force ($F$)
-needed to extend or compress a spring by some distance ($x$) scales linearly with
+of motion $F=m*a$, and Hooke's Law, which states that the force $F$
+needed to extend or compress a spring by some distance $x$ scales linearly with
 respect to that distance. The paper by \citet{PixarPaper} created an elaborate
 system of springs, with additional core springs making the simulation stable
 and resulting in the desired look and feel.
 
-The \citet{PixarPaper} paper also features great further readings in their
-citations, which gives a great glimpse into related previous works.
-
 The main characteristic of this approach is that a Mass Spring System deals with
 forces, and tries to stay true to the laws of physics. It accounts for internal 
 and external forces from which accelerations are computed based on Newton's 
 second law of motion. A time integration method is then used to update the
 velocities and finally the positions of the particles. This will not be the case
 with Position Based Dynamics.
-
 \subsection{Position Based Dynamics (PBD)}
 
 The paper by \citet{MullerPBD} presents an approach that omits the velocity as
@@ -182,7 +180,7 @@ to control to behaviour of such a system -- which is present in both papers.
 
 
 \subsection{Follow-the-Leader (FTL)}
-The Dynamic Follow-The-Leader (FTL) method outlined in \citet{FTLHair} focuses
+The Dynamic Follow-the-Leader (FTL) method outlined in \citet{FTLHair} focuses
 on the fast simulation of hair and fur on animated characters. The sheer number
 of computation needed for simulating thousands of hair strands, each consisting
 of numerous particles presents a big challenge. Also, as each strand is
@@ -205,7 +203,64 @@ it was feasible to allow myself to use multiple iterations per frame, I did
 not further investigate if there could have been improvements made to my
 implementation to eliminate the stretching in the presence of greater forces.
 
+
+\section{Simulation of a Single Hair Strand}
+
+\subsection{A Particle}
+
+We model an $S$ hair strand as a chain of $P$ particles and a set of $C$
+constraints. Each particle $p \in [1,\ldots,N]$ has three atributes: mass ($m_p$), position
+($\boldsymbol{x_p}$) and velocity ($\boldsymbol{v_p}$). 
+
+A constraint $c \in [1,\ldots,C]$ with cardinality $n_c$ is a function $C_c
+: \mathbb{R} ^{3n_c} \mapsto \mathbb{R}$. It operates on a set of indices $\{i_1,\ldots
+i_{n_c}\}, i_k \in [1,...,P]$. The constraint funtion also has a stiffnes
+parameter $k_c \in [0...1]$ and a type of either \emph{equality} or
+\emph{inequality}.
+
+Constraint $c$ with type \emph{equality} is satisfied if
+$C_c(\boldsymbol{x}_{p_1},\ldots, \boldsymbol{x}_{p_{n_j}})=0$. If its type is
+\emph{inequality}, then it is satisfied if $C_c(\boldsymbol{x}_{p_1}, \ldots,
+\boldsymbol{x}_{p_{n_c}}) \geq 0$. The stiffness parameter $k_c$ defines the
+strength of the constraint in a range from zero to one.
+
+Given these notations, the algorithm works in the following way:
+
+\begin{algorithm}
+    \caption{pseudo code for the PBD simulation}
+    \label{alg:pseudoPBD}
+    \begin{algorithmic}
+        \IF {$i \geq maxval$}
+            \STATE asd
+        \ENDIF
+    \end{algorithmic}
+\end{algorithm}
+
+\begin{verbatim}
+    class Particle {
+        vec3 pos;
+        vec3 tmp;
+        float w;
+        vec3 v;
+        vec3 color;
+    }
+\end{verbatim}
+
+\section{Putting Hair on the Head}
+
+
+
 \section{Results}
+The implementation is available at \url{git.sch.bme.hu/bobarna/brave-2}. The
+program is able to handle up to around 500 individual hair strands, each
+consisting of around 30 particles in real time. With the implemented OBJ reader,
+it is possible to achieve diverse visual results in no time. The 
+
+An example result shown in figure \TODO{include figure}, and can be seen in the
+supplementary videos \TODO{Google Drive (?) link with the videos}.
+
+An 8-minute-video was made to supplement this writing. It is accessible at
+\TODO{link to 8-minute video}
 
 \section{Conclusion}
 After investigating and trying out multiple methods to simulate hair, we arrived
@@ -213,34 +268,60 @@ at the Position Based Dynamics (PBD) method. An overview of the PBD method, and
 an introduction to the constraint types used in our implementation was given.
 An implementation was made in C++ and OpenGL, which easily simulates the hair
 strands in real time, although the limit of the real-time nature can easily be
-surpassed when adding thousands of strands with hundreds of particles.
+surpassed when adding around a thousand strands each with more than 30
+particles.
 
-\section{Further Work}
+\section{Future Work}
 As this was part only of a semester-long Project Laboratory course, a great deal
 of time was dedicated in the early stages of the project to investigate and
 explore the subject area. This left only a sub-optimal time for implementing all
 desired aspects of the simulation.
 
-\begin{itemize}
-    \item Hair-hair collisions
-        \begin{itemize} 
-            \item As it is computationally extensive to simulate each particle
-                colliding with all of the other particles, a particle density
-                field could be used. One such method of grouping hair particles
-                and their corresponding velocities into a 3D voxel grid is
-                outlined in the \cite{PixarVolumetricHair} paper, which was also
-                utilized in the \citet{FTLHair} paper for handling hair-hair
-                collisions.
-        \end{itemize}
-    \item Refinement and proper customizability of the propagation of hair
-        strands on the Head Object. 
-        \begin{itemize}
-            \item A drawable texture map is considered for the ability to
-                tell the simulation where to put the hair strands on the
-                surface of the hair.
-        \end{itemize}
-    \item 
-\end{itemize}
+\subsection{Hair-hair collisions}
+As it is computationally extensive to simulate each particle colliding with all
+of the other particles, a particle density field could be used. One such method
+of grouping hair particles and their corresponding velocities into a 3D voxel
+grid is outlined in the \citet{PixarVolumetricHair} paper, which was also
+utilized in the \citet{FTLHair} paper for handling hair-hair collisions.
+
+\subsection{Refinement and proper customizability of the propagation of hair
+strands on the head object.} 
+A drawable texture map is considered for the ability to tell the simulation
+where to put the hair strands on the surface of the head.
+
+\subsection{Better customizability}
+In the current implementation there is no way to properly customize the look and
+feel of the hair without accessing the source code. A possible improvement could
+be to read material and texture data for the hair from the OBJ file. Another
+huge improvement could be to set the constraints in real time, giving the user
+much better control of the hair. Other properties, such as length of the hair
+segments and color of the hair could be set as well.
+
+\subsection{Halton sequence for randomizing hair positions}
+In the current implementation, a standard C++ random number generator is
+utilized. Utilizing a low-discrepancy number sequence for randomizing hair
+strand positions would be an improvement.
+
+\subsection{Rendering}
+This semester left no time to try out different methods for rendering and
+visualizing the hair. The current implementation connects the individual
+particles with GL\_LINES, resulting in a sub-optimal visual experience. Offline
+(e.g. ray-tracing) methods could utilize the current simulation method. 
+The paper by \citet{RappRealTime} discusses the real-time aspect of hair
+rendering in great detail, supplemented with a broad discussion on different
+parts of the (OpenGL) rendering pipeline that could be utilized.
+
+\subsection{Moving to the GPU}
+The current implementation runs solely on the CPU. A big leap forward would be
+the utilization of the GPU. Compute shaders for computations are considered. The
+paper by \citet{UmenhofferSimulation} discusses a parametrization of the
+different constraint solves, although as they work on the same dataset, some
+computation problems are present during the parellelization of the
+problem.
+
+Tesselation and geometry shaders could be utilized for the rendering and display
+of the particles, resulting in a far better image with the same simulation
+method and properties.
 
 %%
 %% The acknowledgments section is defined using the "acks" environment
@@ -345,7 +426,6 @@ all the rendered frames. This script uses the free and open-sorce ffmpeg command
 line utility\footnote{\url{https://ffmpeg.org/}}
 
 
-
 \end{document}
 \endinput
 %%
diff --git a/docs/references.bib b/docs/references.bib
index 1a7a1804fc407fa104f96c616bd629be49434083..120581b412b7755769aa1c8c336f048058894590 100644
--- a/docs/references.bib
+++ b/docs/references.bib
@@ -63,3 +63,10 @@ url = {https://matthias-research.github.io/pages/publications/FTLHairFur.pdf}
   url = {https://graphics.pixar.com/library/Hair/paper.pdf}
 
 }
+
+@inproceedings{RappRealTime,
+  title={Real-Time Hair Rendering},
+  author={M. Rapp},
+  year={2014},
+  url={http://markusrapp.de/wordpress/wp-content/uploads/hair/MarkusRapp-MasterThesis-RealTimeHairRendering.pdf}
+}