ソースを参照

Finished proposal.

Taddeus Kroes 14 年 前
コミット
637b06c255
2 ファイル変更245 行追加7 行削除
  1. 2 1
      .gitignore
  2. 243 6
      docs/proposal.tex

+ 2 - 1
.gitignore

@@ -5,4 +5,5 @@
 *.log
 *.out
 *.pdf
-*.gz
+*.gz
+*.toc

+ 243 - 6
docs/proposal.tex

@@ -1,22 +1,259 @@
 \documentclass[10pt,a4paper]{article}
 
-\usepackage[english]{babel}
+\usepackage[dutch]{babel}
 \usepackage[utf8]{inputenc}
 \usepackage{amsmath,hyperref,graphicx,booktabs,float}
 
+% Link colors
+\hypersetup{colorlinks=true,linkcolor=black,urlcolor=blue}
+
 % Paragraph indentation
 \setlength{\parindent}{0pt}
-\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}
+\setlength{\parskip}{1.5ex plus 0.5ex minus 0.2ex}
 
-\title{}
-\author{Taddeus Kroes (taddeuskroes@hotmail.com)}
+\title{Projectvoorstel\\Universal Visualization Appliance}
+\author{\begin{tabular}{rl}
+Naam:               & Taddeüs Kroes\\
+Collegekaartnummer: & 6054129\\
+E-mailadres:        & \texttt{taddeuskroes@hotmail.com}\\
+Adres:              & Wethouder van Wijckstraat 40, 1107 BR Amsterdam\\
+Telefoonnummer:     & 06-23437025\\
+Begeleider:         & Dr. R.G. Belleman (UvA)\\
+\end{tabular}}
 
 \begin{document}
 
 \maketitle
+\tableofcontents
+\pagebreak
+
+\section{Introductie}
+
+\subsection{Opbouw van dit document}
+
+Eerst zal het probleem worden geïdentificeerd dat in dit onderzoek gaat
+worden onderzocht.
+
+Dat probleem wordt vervolgens vertaald naar een doelstelling en een
+vraagstelling. De centrale vraagstelling wordt verdeeld in een aantal
+deelvragen die elk een korte toelichting bevatten.
+
+Na de vraagstelling wordt de afbakening van het onderzoeksgebied aangegeven.
+
+Vervolgens wordt de onderzoeksmethodiek beschreven, bestaande uit een
+faseverdeling en een ruwe tijdsplanning.
+
+Tot slot wordt een blik geworpen op een project dat soortgelijk is aan dit
+onderzoek.
+
+\subsection{Probleemidentificatie}
+\label{sec:probleemidentificatie}
+
+% Ruwe probleemstelling
+
+Data wordt verzameld in alle hoeken van de wetenschap. Wanneer de data echter
+zijn verzameld, is het vaak een aparte uitdaging om deze op een zodanige
+manier weer te geven dat er een waarneming kan worden gedaan. Deze
+visualisatie wordt veelal gedaan met de hulp van een visualisatie-specialist,
+omdat het voor de wetenschapper vaak zelf niet eenvoudig is om dit te
+realiseren.
+
+% Aanleiding
+
+Robert Belleman\footnote{\url{http://staff.science.uva.nl/~robbel/}} is een
+specialist op het gebied van visualisatie op de Universiteit van Amsterdam
+(UvA), en deed de observatie dat bij gelijksoortige datasets de
+visualisatiemethode overeenkomstig is.
+
+% Ruwe doel
+
+Dit roept de vraag op of de visualisatiemethode kan worden bepaald door een
+computerprogramma dat de data analyseert, en op basis van die analyse een
+visualisatiemethode kiest. Dit zou werk uit handen nemen van de
+visualisatie-specialist, en de mogelijkheid geven voor wetenschappers om
+hun eigen data snel te kunnen bekijken. Om deze reden heeft hij dit project als
+afstudeerproject voor de bachelor Informatica beschikbaar gesteld.
+
+% Setting/afbakening
+
+De afstudeeropdracht is om de basis te leggen voor een computerprogramma dat
+op lange termijn zoveel mogelijk soorten data kan analyseren en visualiseren.
+Het is de bedoeling van de onderzoekers dat het programma zodanig modulair
+wordt opgezet, dat er in de loop van de tijd meer modules op kunnen worden
+aangesloten voor nieuwe analyse- en visualisatiemethodes. Vanwege de
+beschikbare tijd om het onderzoek uit te voeren is besloten dat het
+resulterende programma een ``Proof of Concept'' moet zijn. Er is besloten dat
+het Proof of Concept 3D datasets moet kunnen visualiseren in interactie met
+een multi-touch tafel. Deze is beschikbaar gesteld voor dit onderzoek door de
+UvA.
+
+\section{Vraagstelling}
+
+\subsection{Doel van het onderzoek}
+
+Het doel van dit onderzoek is om een bijdrage te leveren aan het ontwikkelen
+van een universeel datavisualisatie-programma.
+
+In dit projectvoorstel zal naar het programma worden verwezen met de naam
+``UVA'' (Universal Visualizaton Appliance).
+
+\subsection{Centrale vraag}
+
+De centrale vraagstelling is hoe het Proof of Concept kan worden
+gerealiseerd.
+Dit bevat de implementatie van een kerncomponent voor het UVA programma, met
+daarbij implementaties voor 3D-visualisatie en multi-touch interactie.
+
+\subsection{Deelvragen}
+
+\begin{itemize}
+\item \emph{Welke taal (en evt. framework) zijn de beste keuze om het
+programma in te ontwikkelen?}
+
+Het kiezen van een taal is vooral afhankelijk van de beschikbaarheid van zgn.
+``libraries'' met multi-touch ondersteuning. Voor
+Python\footnote{\url{http://python.org}} bestaat bijvoorbeeld het
+applicatieframework Kivy\footnote{\url{http://kivy.org}}.
+      
+\item \emph{Hoe werkt de communicatie met de multi-touch tafel?}
+
+Het is nodig om te weten wat voor ``events'' er worden ondersteund door
+frameworks als Kivy, om te bepalen welke touch-gebaren kunnen worden
+geïmplementeerd.
+
+\item \emph{Welke soorten 3D datasets zijn er en welke daarvan zijn relevant
+om te ondersteunen in het Proof of Concept?}
+
+De term ``3D dataset'' is een generieke benaming. Omdat de multi-touch
+tafel in het bezit van de UvA is, zal het onderzoek zich in eerste
+instantie richten op bestandsformaten die op de UvA worden gebruikt om de kans op
+daadwerkelijk gebruik van het programma te vergroten.
+
+\item \emph{Hoe kunnen de verschillende 3D datasets worden gevisualiseerd?}
+
+Is het bijvoorbeeld makkelijk om OpenGL commando's te gebruiken? En wanneer er
+vele duizenden vectoren zijn, is het dan nuttig om bijvoorbeeld clusters van
+vectoren te groeperen tot een enkele vector?
+
+\item \emph{Hoe kunnen multi-touch gebaren worden gebruikt in de interactie
+met 3D datasets?}
+
+Er moet een intuïtieve manier worden bedacht voor de interactie met 3D data
+op een 2D scherm.
+
+\item \emph{Wat is een goede structuur die toestaat om in de toekomst nieuwe
+visualisatiemethodes toe te voegen?}
+
+Een universeel programma moet flexibel zijn zodat ontwikkelaars gemakkelijk
+nieuwe methodes kunnen toevoegen. Een voorbeeld van een al bestaand is
+Eclipse. Elk component van Eclipse wordt gezien is een ``plugin''. Zo'n plugin
+heeft een vast formaat waardoor het kan worden gebruikt in combinatie met
+andere plugins. Een soortgelijke structuur is wellicht nuttig om te hanteren
+in het UVA-programma.
+
+De structuur moet flexibel genoeg zijn om een verschillende frameworks te
+kunnen gebruiken in verschillende visualisatiemethodes. Kivy maakt
+bijvoorbeeld gebruik van een eigen main loop (een functie die zorgt voor het
+functioneren van de grafische interface). De loop is ``blocking'', dus is het
+mogelijk nodig om gebruik te maken van threads voor continue taken.
+
+\end{itemize}
+
+\subsection{Afbakening}
+\label{sec:afbakening}
+
+Het onderzoek zou waarschijnlijk het best tot zijn recht komen wanneer het zou
+worden uitgevoerd door meerdere onderzoekers. Omdat er echter slechts een
+enkele onderzoeker is, en er een beperkte tijd voor het onderzoek beschikbaar
+is, is besloten tot het maken van een Proof of Concept (zoals reeds vermeld in
+hoofdstuk \ref{sec:probleemidentificatie}).
+
+%Omdat het UVA-programma expliciet als opdracht is geformuleerd, wordt in dit
+%onderzoek aangenomen dat er nog geen universeel programma voor
+%datavisualisatie bestaat.
+
+\section{Onderzoeksmethodiek}
+
+\subsection{Fases}
+
+Het onderzoek kan worden verdeeld in vier hoofdfases:
+
+\subsubsection*{Oriëntatiefase}
+
+De eerste fase is de oriëntatie op het werken met de multi-touch interface, en
+op het weergeven van voorbeeld-datasets in 3D (gebruik makend van de OpenGL-
+bindings\footnote{\url{http://kivy.org/docs/api-kivy.graphics.opengl.html}} in
+Kivy).
+
+Er moet bijvoorbeeld worden uitgezocht welke touch-gebaren worden herkend. Dit
+kan worden getest met behulp van een testprogramma dat een bericht toont op
+het moment dat een event optreedt.
+
+Ook is het nuttig om een testprogramma te maken dat met behulp van de eerder
+genoemde OpenGL-bindings een 3D plot maakt van een voorbeeld-dataset, om
+bekend te worden met de OpenGL functionaliteit.
+
+Daarnaast moet worden bepaald welke soorten 3D data gaan worden gebruikt, en
+hoe het formaat hiervan eruit ziet.
+
+\subsubsection*{Ontwerpfase}
+
+Met de kennis die is opgedaan tijdens de oriëntatiefase kan een ontwerp worden
+gemaakt van het kerncomponent van het programma, en de aansluiting hiervan op
+de 3D/multi-touch visualisatiecomponenten.
+
+\subsubsection*{Implementatiefase}
+
+Deze fase bevat het daadwerkelijk programmeren van de ontworpen onderdelen.
+Tijdens deze fase zullen ook ontwerpproblemen op een gedetailleerd niveau
+worden opgelost. Denk aan het invullen van de grafische interface met knoppen
+en eventuele widgets.
+
+\subsubsection*{Verslaglegging}
+
+Het is de bedoeling dat al tijdens de eerste drie fases wordt gewerkt aan de
+basis van de afstudeerscriptie, in de vorm van documentatie. Tijdens de
+laatste fase worden deze onderdelen waar nodig aangevuld en worden de overige
+hoofdstukken geschreven.
+
+\subsection{Tijdsplanning}
+
+De planning volgens BlackBoard\footnote{\url{https://blackboard.uva.nl/webapps/login/}}
+bevat acht weken voor de eerste drie fases, en drie weken voor het schrijven
+van de afstudeerscriptie.
+
+De ruw geschatte tijdsindeling voor de verschillende fases is:
+\begin{table}[H]
+\begin{tabular}{ll}
+week 12-13 & Oriëntatiefase \\
+week 14    & Ontwerpfase \\
+week 15-18 & Implementatiefase \\
+week 19-21 & Verslaglegging \\
+\end{tabular}
+\end{table}
+
+\section{Relatie met vergelijkbaar onderzoek}
+
+Er is gezocht naar programma's met een soortgelijke strekking met
+het doel er inspiratie uit op te doen, zo is het programma ``UDAV'' gevonden.
 
-\section{Introduction}
+UDAV\footnote{\url{http://udav.sourceforge.net/}} is een programma waarmee
+data op verschillende manieren kan worden gevisualiseerd met behulp van
+MathGL\footnote{\url{http://mathgl.sourceforge.net/}}. Om dit programma te
+kunnen gebruiken is kennis nodig van de MathGL syntax, waar het UVA-programma
+juist als eigenschap heeft dat er weinig kennis nodig is van de gebruiker.
+Het zou echter wel een optie zijn om visualisatiemogelijkheden in de MathGL
+library onder te brengen in een module voor het UVA-programma.
 
+\section{Referenties}
 
+\begin{itemize}
+\item Homepage Robert Belleman \url{http://staff.science.uva.nl/~robbel/}
+\item Python homepage \url{http://python.org}
+\item Kivy homepage \url{http://kivy.org}
+\item Kivy OpenGL-bindings documentatie \url{http://kivy.org/docs/api-kivy.graphics.opengl.html}
+\item UDAV homepage \url{http://udav.sourceforge.net/}
+\item MathGL homepage \url{http://mathgl.sourceforge.net/}
+\end{itemize}
 
-\end{document}
+\end{document}