proposal.tex 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. \documentclass[10pt,a4paper]{article}
  2. \usepackage[dutch]{babel}
  3. \usepackage[utf8]{inputenc}
  4. \usepackage{amsmath,hyperref,graphicx,booktabs,float}
  5. % Link colors
  6. \hypersetup{colorlinks=true,linkcolor=black,urlcolor=blue}
  7. % Paragraph indentation
  8. \setlength{\parindent}{0pt}
  9. \setlength{\parskip}{1.5ex plus 0.5ex minus 0.2ex}
  10. \title{Projectvoorstel\\Universal Visualization Appliance}
  11. \author{\begin{tabular}{rl}
  12. Naam: & Taddeüs Kroes\\
  13. Collegekaartnummer: & 6054129\\
  14. E-mailadres: & \texttt{taddeuskroes@hotmail.com}\\
  15. Adres: & Wethouder van Wijckstraat 40, 1107 BR Amsterdam\\
  16. Telefoonnummer: & 06-23437025\\
  17. Begeleider: & Dr. R.G. Belleman (UvA)\\
  18. \end{tabular}}
  19. \begin{document}
  20. \maketitle
  21. \tableofcontents
  22. \pagebreak
  23. \section{Introductie}
  24. \subsection{Opbouw van dit document}
  25. Eerst zal het probleem worden geïdentificeerd dat in dit onderzoek gaat
  26. worden onderzocht.
  27. Dat probleem wordt vervolgens vertaald naar een doelstelling en een
  28. vraagstelling. De centrale vraagstelling wordt verdeeld in een aantal
  29. deelvragen die elk een korte toelichting bevatten.
  30. Na de vraagstelling wordt de afbakening van het onderzoeksgebied aangegeven.
  31. Vervolgens wordt de onderzoeksmethodiek beschreven, bestaande uit een
  32. faseverdeling en een ruwe tijdsplanning.
  33. Tot slot wordt een blik geworpen op een project dat soortgelijk is aan dit
  34. onderzoek.
  35. \subsection{Probleemidentificatie}
  36. \label{sec:probleemidentificatie}
  37. % Ruwe probleemstelling
  38. Data wordt verzameld in alle hoeken van de wetenschap. Wanneer de data echter
  39. zijn verzameld, is het vaak een aparte uitdaging om deze op een zodanige
  40. manier weer te geven dat er een waarneming kan worden gedaan. Deze
  41. visualisatie wordt veelal gedaan met de hulp van een visualisatie-specialist,
  42. omdat het voor de wetenschapper vaak zelf niet eenvoudig is om dit te
  43. realiseren.
  44. % Aanleiding
  45. Robert Belleman\footnote{\url{http://staff.science.uva.nl/~robbel/}} is een
  46. specialist op het gebied van visualisatie op de Universiteit van Amsterdam
  47. (UvA), en deed de observatie dat bij gelijksoortige datasets de
  48. visualisatiemethode overeenkomstig is.
  49. % Ruwe doel
  50. Dit roept de vraag op of de visualisatiemethode kan worden bepaald door een
  51. computerprogramma dat de data analyseert, en op basis van die analyse een
  52. visualisatiemethode kiest. Dit zou werk uit handen nemen van de
  53. visualisatie-specialist, en de mogelijkheid geven voor wetenschappers om
  54. hun eigen data snel te kunnen bekijken. Om deze reden heeft hij dit project als
  55. afstudeerproject voor de bachelor Informatica beschikbaar gesteld.
  56. % Setting/afbakening
  57. De afstudeeropdracht is om de basis te leggen voor een computerprogramma dat
  58. op lange termijn zoveel mogelijk soorten data kan analyseren en visualiseren.
  59. Het is de bedoeling van de onderzoekers dat het programma zodanig modulair
  60. wordt opgezet, dat er in de loop van de tijd meer modules op kunnen worden
  61. aangesloten voor nieuwe analyse- en visualisatiemethodes. Vanwege de
  62. beschikbare tijd om het onderzoek uit te voeren is besloten dat het
  63. resulterende programma een ``Proof of Concept'' moet zijn. Er is besloten dat
  64. het Proof of Concept 3D datasets moet kunnen visualiseren in interactie met
  65. een multi-touch tafel. Deze is beschikbaar gesteld voor dit onderzoek door de
  66. UvA.
  67. \section{Vraagstelling}
  68. \subsection{Doel van het onderzoek}
  69. Het doel van dit onderzoek is om een bijdrage te leveren aan het ontwikkelen
  70. van een universeel datavisualisatie-programma.
  71. In dit projectvoorstel zal naar het programma worden verwezen met de naam
  72. ``UVA'' (Universal Visualizaton Appliance).
  73. \subsection{Centrale vraag}
  74. De centrale vraagstelling is hoe het Proof of Concept kan worden
  75. gerealiseerd.
  76. Dit bevat de implementatie van een kerncomponent voor het UVA programma, met
  77. daarbij implementaties voor 3D-visualisatie en multi-touch interactie.
  78. \subsection{Deelvragen}
  79. \begin{itemize}
  80. \item \emph{Welke taal (en evt. framework) zijn de beste keuze om het
  81. programma in te ontwikkelen?}
  82. Het kiezen van een taal is vooral afhankelijk van de beschikbaarheid van zgn.
  83. ``libraries'' met multi-touch ondersteuning. Voor
  84. Python\footnote{\url{http://python.org}} bestaat bijvoorbeeld het
  85. applicatieframework Kivy\footnote{\url{http://kivy.org}}.
  86. \item \emph{Hoe werkt de communicatie met de multi-touch tafel?}
  87. Het is nodig om te weten wat voor ``events'' er worden ondersteund door
  88. frameworks als Kivy, om te bepalen welke touch-gebaren kunnen worden
  89. geïmplementeerd.
  90. \item \emph{Welke soorten 3D datasets zijn er en welke daarvan zijn relevant
  91. om te ondersteunen in het Proof of Concept?}
  92. De term ``3D dataset'' is een generieke benaming. Omdat de multi-touch
  93. tafel in het bezit van de UvA is, zal het onderzoek zich in eerste
  94. instantie richten op bestandsformaten die op de UvA worden gebruikt om de kans op
  95. daadwerkelijk gebruik van het programma te vergroten.
  96. \item \emph{Hoe kunnen de verschillende 3D datasets worden gevisualiseerd?}
  97. Is het bijvoorbeeld makkelijk om OpenGL commando's te gebruiken? En wanneer er
  98. vele duizenden vectoren zijn, is het dan nuttig om bijvoorbeeld clusters van
  99. vectoren te groeperen tot een enkele vector?
  100. \item \emph{Hoe kunnen multi-touch gebaren worden gebruikt in de interactie
  101. met 3D datasets?}
  102. Er moet een intuïtieve manier worden bedacht voor de interactie met 3D data
  103. op een 2D scherm.
  104. \item \emph{Wat is een goede structuur die toestaat om in de toekomst nieuwe
  105. visualisatiemethodes toe te voegen?}
  106. Een universeel programma moet flexibel zijn zodat ontwikkelaars gemakkelijk
  107. nieuwe methodes kunnen toevoegen. Een voorbeeld van een al bestaand is
  108. Eclipse. Elk component van Eclipse wordt gezien is een ``plugin''. Zo'n plugin
  109. heeft een vast formaat waardoor het kan worden gebruikt in combinatie met
  110. andere plugins. Een soortgelijke structuur is wellicht nuttig om te hanteren
  111. in het UVA-programma.
  112. De structuur moet flexibel genoeg zijn om een verschillende frameworks te
  113. kunnen gebruiken in verschillende visualisatiemethodes. Kivy maakt
  114. bijvoorbeeld gebruik van een eigen main loop (een functie die zorgt voor het
  115. functioneren van de grafische interface). De loop is ``blocking'', dus is het
  116. mogelijk nodig om gebruik te maken van threads voor continue taken.
  117. \end{itemize}
  118. \subsection{Afbakening}
  119. \label{sec:afbakening}
  120. Het onderzoek zou waarschijnlijk het best tot zijn recht komen wanneer het zou
  121. worden uitgevoerd door meerdere onderzoekers. Omdat er echter slechts een
  122. enkele onderzoeker is, en er een beperkte tijd voor het onderzoek beschikbaar
  123. is, is besloten tot het maken van een Proof of Concept (zoals reeds vermeld in
  124. hoofdstuk \ref{sec:probleemidentificatie}).
  125. %Omdat het UVA-programma expliciet als opdracht is geformuleerd, wordt in dit
  126. %onderzoek aangenomen dat er nog geen universeel programma voor
  127. %datavisualisatie bestaat.
  128. \section{Onderzoeksmethodiek}
  129. \subsection{Fases}
  130. Het onderzoek kan worden verdeeld in vier hoofdfases:
  131. \subsubsection*{Oriëntatiefase}
  132. De eerste fase is de oriëntatie op het werken met de multi-touch interface, en
  133. op het weergeven van voorbeeld-datasets in 3D (gebruik makend van de OpenGL-
  134. bindings\footnote{\url{http://kivy.org/docs/api-kivy.graphics.opengl.html}} in
  135. Kivy).
  136. Er moet bijvoorbeeld worden uitgezocht welke touch-gebaren worden herkend. Dit
  137. kan worden getest met behulp van een testprogramma dat een bericht toont op
  138. het moment dat een event optreedt.
  139. Ook is het nuttig om een testprogramma te maken dat met behulp van de eerder
  140. genoemde OpenGL-bindings een 3D plot maakt van een voorbeeld-dataset, om
  141. bekend te worden met de OpenGL functionaliteit.
  142. Daarnaast moet worden bepaald welke soorten 3D data gaan worden gebruikt, en
  143. hoe het formaat hiervan eruit ziet.
  144. \subsubsection*{Ontwerpfase}
  145. Met de kennis die is opgedaan tijdens de oriëntatiefase kan een ontwerp worden
  146. gemaakt van het kerncomponent van het programma, en de aansluiting hiervan op
  147. de 3D/multi-touch visualisatiecomponenten.
  148. \subsubsection*{Implementatiefase}
  149. Deze fase bevat het daadwerkelijk programmeren van de ontworpen onderdelen.
  150. Tijdens deze fase zullen ook ontwerpproblemen op een gedetailleerd niveau
  151. worden opgelost. Denk aan het invullen van de grafische interface met knoppen
  152. en eventuele widgets.
  153. \subsubsection*{Verslaglegging}
  154. Het is de bedoeling dat al tijdens de eerste drie fases wordt gewerkt aan de
  155. basis van de afstudeerscriptie, in de vorm van documentatie. Tijdens de
  156. laatste fase worden deze onderdelen waar nodig aangevuld en worden de overige
  157. hoofdstukken geschreven.
  158. \subsection{Tijdsplanning}
  159. De planning volgens BlackBoard\footnote{\url{https://blackboard.uva.nl/webapps/login/}}
  160. bevat acht weken voor de eerste drie fases, en drie weken voor het schrijven
  161. van de afstudeerscriptie.
  162. De ruw geschatte tijdsindeling voor de verschillende fases is:
  163. \begin{table}[H]
  164. \begin{tabular}{ll}
  165. week 12-13 & Oriëntatiefase \\
  166. week 14 & Ontwerpfase \\
  167. week 15-18 & Implementatiefase \\
  168. week 19-21 & Verslaglegging \\
  169. \end{tabular}
  170. \end{table}
  171. \section{Relatie met vergelijkbaar onderzoek}
  172. Er is gezocht naar programma's met een soortgelijke strekking met
  173. het doel er inspiratie uit op te doen, zo is het programma ``UDAV'' gevonden.
  174. UDAV\footnote{\url{http://udav.sourceforge.net/}} is een programma waarmee
  175. data op verschillende manieren kan worden gevisualiseerd met behulp van
  176. MathGL\footnote{\url{http://mathgl.sourceforge.net/}}. Om dit programma te
  177. kunnen gebruiken is kennis nodig van de MathGL syntax, waar het UVA-programma
  178. juist als eigenschap heeft dat er weinig kennis nodig is van de gebruiker.
  179. Het zou echter wel een optie zijn om visualisatiemogelijkheden in de MathGL
  180. library onder te brengen in een module voor het UVA-programma.
  181. \section{Referenties}
  182. \begin{itemize}
  183. \item Homepage Robert Belleman \url{http://staff.science.uva.nl/~robbel/}
  184. \item Python homepage \url{http://python.org}
  185. \item Kivy homepage \url{http://kivy.org}
  186. \item Kivy OpenGL-bindings documentatie \url{http://kivy.org/docs/api-kivy.graphics.opengl.html}
  187. \item UDAV homepage \url{http://udav.sourceforge.net/}
  188. \item MathGL homepage \url{http://mathgl.sourceforge.net/}
  189. \end{itemize}
  190. \end{document}