Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
<<importTiddlers>>
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

----
Also see [[AdvancedOptions]]
<!--{{{-->
<div class='header' role='banner' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' role='navigation' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' role='navigation' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' role='complementary' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea' role='main'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected {color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:alpha(opacity=60);}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0; top:0;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0 3px 0 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0; padding-bottom:0;}

.fieldsetFix {border:0; padding:0; margin:1px 0px;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='toolbar' role='navigation' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
!!! Dissertation thesis
Degree Course: Program Systems
Author: Peter Drahoš
Supervisor: assoc. prof. Martin Šperka, ~PhD.
April 2011
!!! Abstract
In the recent years the average performance of computers increased significantly partly due to the ubiquitous availability of graphics hardware. Photorealistic rendering of human faces is no longer restricted to offline rendering and use in movies. Even portable machines and to some degree high-end mobile devices offer enough performance to synthetize photorealistic facial animation in real time. However, the unavailability of flexible and reusable animation systems for use in third party applications still remains an issue. Our work presents a straightforward approach to photorealistic facial animation synthesis based on dynamic manipulation of displacement maps. We propose an integrated system that combines various animation sources such as blend-shapes, virtual muscles and point influence maps with modern visualization and skin simulation techniques.  Inspired by systems that synthetize facial expression from images we designed and implemented an animation system that uses image based composition of displacement maps without the need to process the facial geometry. This improves overall performance and makes implementation of detail scalability trivial. For evaluation we have implemented a reusable animation library that was used in a simple application that visualizes speech.
<<tiddler HideTiddlerSubtitle>>
I am a research fellow at the [[Faculty of Informatics and Information Technologies|http://www.fiit.stuba.sk/]], [[Slovak University of Technology|http://www.stuba.sk]] in Bratislava.
!!!Contacts
In preferred order: 
*''Mail:'' peter_drahos [at] stuba [dot] sk
*''Office:'' 4.29
*''XMPP:'' drahosp [at] gmail [dot] com
*''Phone:'' (+421) 904 621 601 
Slovak University of Technology
Faculty of Informatics and Information Technologies
Department of Applied Informatics
Ilkovičova 3
842 16 Bratislava 
Slovak Republic
!!!Consultations:
Thu 09:00 - 13:00 @ 4.29
<<tiddler HideTiddlerSubtitle>>
Background: #ffffff
Foreground: #000033
PrimaryPale: #e5edf4
PrimaryLight: #679DC2
PrimaryMid: #005B99
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #FFA02F
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88

MainAccent: #e20000
MainAccentLight: #ee0000

SecondAccent: #5b0000
SecondAccentLight: #9DD97B
SecondAccentSuperLight: #E7F6DF

MuchLessSubtle: #666;
LessSubtle: #999;
Subtle: #ccc
SubtleLight: #ddd
SubtleSuperLight: #eee
Copyright 2011, Peter Drahoš
[[News]]
[[About Me]]
<!--{{{-->
<div class='title' macro='view title'></div>
<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<!--}}}-->
[[Copyright]]

<<slider chkSliderOptionsPanel SiteMap "site index »" >>

<<slider chkSliderOptionsPanel OptionsPanel "options »" "Change TiddlyWiki advanced options">>
!!!Lecture
Wed 10:00 - 13:50 @ D150
!!!Courses
Fri 09.00-10.50 @ 1.30a
Fri 11.00-12.50 @ 1.30a
!!!Useful resources
# [[W3Schools|http://www.w3schools.com/]]
# [[HTML5 Canvas Tutorials|http://www.html5canvastutorials.com/]]
!!!Project
* Concept (Week 4, 5p)
** Create a short report (max. 5xA4 pages) presenting concept of your simple game including description of its goals, challenges  and logic (1p).
** Design the game scenes and menus (2p)
** Describe the controls and inputs (2p)
* Basic logic and graphics (Week 8, 15p)
** Show off your game scene with your graphics (5p)
** Demonstrate implementation of basic controls of your game (5p)
** Basic game logic and animation (5p)
* Final Presentation(Week 12, 20p)
** Present the completed game including starting and ending screens (10p)
** Game logic must be complete as specified in Concept (5p)
** Evaluate and profile your game, identify weak points (5p)
!!NOTES:
** Projects submitted late will be penalized 3p per week.
** No tasks and projects will be accepted after the last course.
** Yes, you can submit your tasks and projects early.
!!!Consultations
Consultations outside of courses are available during the consultation hours noted in the [[About Me]] page.
!!!Lecture Slides
# Introduction ([[pdf|ZTIAPL/2013/1_Introduction.pdf]])
# Applications ([[pdf|ZTIAPL/2013/2_Applications.pdf]])
# MVC and Canvas ([[pdf|ZTIAPL/2013/3_MVC_canvas.pdf]] [[examples|ZTIAPL/2013/3_Examples.zip]])
# ~WIMPs ([[pdf|ZTIAPL/2013/4_WIMPS.pdf]] [[examples|ZTIAPL/2013/4_Examples.zip]])
# Widgets ([[pdf|ZTIAPL/2013/5_Widgets.pdf]] [[examples|ZTIAPL/2013/5_Qt.zip]])
# Observer ([[pdf|ZTIAPL/2013/6_Observer.pdf]] [[examples|ZTIAPL/2013/6_Observer.zip]])
# Web ([[pdf|ZTIAPL/2013/7_Web.pdf]] [[examples|ZTIAPL/2013/7_Web.zip]])
# AJAX ([[pdf|ZTIAPL/2013/9_AJAX.pdf]])
# ~OpenSource ([[pdf|ZTIAPL/2013/10_OpenSource.pdf]])
# Testing ([[pdf|ZTIAPL/2013/11_Testing.pdf]] [[examples|ZTIAPL/2013/11_Testing.zip]])
!!!Announcements
* 16.4 23:59 - Project progress can be  submitted to AIS without penalization.
* 28.4 - Evaluation Test Re-run.
* 20.5 - Final projects WILL NOT be accepted past this date.

!!!Lecture
Mon 11:00 - 13:50 @ U120

!!!Courses
Tue 07:00-08:50 @ ~CPUd
Tue 09:00-10:50 @ ~CPUd
Tue 11:00-12:50 @ ~CPUd
Tue 14:00-15:50 @ ~CPUd
Wed 07:00-08.50 @ ~CPUd
Wed 09:00-10:50 @ ~CPUd

!!!Useful resources
# [[Codeacademy JS|http://www.codecademy.com/tracks/javascript]]
# [[W3Schools|http://www.w3schools.com/]]
# [[HTML5 Canvas Tutorials|http://www.html5canvastutorials.com/]]
# [[DevDocs Reference|http://devdocs.io]]

!!!Project
* Concept (Week 4, 5p)
** Create a short report (max. 5xA4 pages) presenting concept of your simple game including description of its goals, challenges  and logic (1p).
** Design the game scenes and menus (2p)
** Describe the controls and inputs (2p)
* Basic logic and graphics (Week 8, 15p)
** Show off your game scene with your graphics (5p)
** Demonstrate implementation of basic controls of your game (5p)
** Basic game logic and animation (5p)
* Final Presentation(Week 12, 20p)
** Present the completed game including starting and ending screens (10p)
** Game logic must be complete as specified in Concept (5p)
** Evaluate and profile your game, identify weak points (5p)

!!!Consultations
Consultations outside of courses are available during the consultation hours noted in the [[About Me]] page.

!!!Lecture Slides
# Introduction ([[pdf|ZTIAPL/2014/1_Introduction.pdf]])
# Applications ([[pdf|ZTIAPL/2014/2_Applications.pdf]] [[examples|ZTIAPL/2014/2_Applications.zip]])
# MVC ([[pdf|ZTIAPL/2014/3_MVC.pdf]] [[examples|ZTIAPL/2014/3_MVC.zip]])
# ~WIMPs ([[pdf|ZTIAPL/2014/4_WIMPS.pdf]] [[examples|ZTIAPL/2014/4_Events.zip]])
# Widgets ([[pdf|ZTIAPL/2014/5_Widgets.pdf]] [[examples|ZTIAPL/2014/5_Widgets.zip]])
# Web ([[pdf|ZTIAPL/2014/6_Web.pdf]] [[examples|ZTIAPL/2014/6_Web.zip]])
# Testing ([[pdf|ZTIAPL/2014/7_Testing.pdf]] [[examples|ZTIAPL/2014/7_Testing.zip]])
# ~OpenSource ([[pdf|ZTIAPL/2014/9_OpenSource.pdf]] [[examples|ZTIAPL/2014/8_OpenSource.zip]])
# HCI ([[pdf|ZTIAPL/2014/10_HCI.pdf]])
!!!Lecture
Mon 12:00 - 13:50 @ U120

!!!Courses
Tue 08:00-09:50 @ ~CPUd
Tue 10:00-11:50 @ ~CPUd
Wed 12:00-13:50 @ ~CPUc
Wed 14:00-15:50 @ ~CPUc

!!!Useful resources
# [[Codeacademy JS|http://www.codecademy.com/tracks/javascript]]
# [[W3Schools|http://www.w3schools.com/]]
# [[HTML5 Canvas Tutorials|http://www.html5canvastutorials.com/]]
# [[DevDocs Reference|http://devdocs.io]]
# [[Game Mechanics Explorer|http://gamemechanicexplorer.com/]]

!!!Project
* Concept (Week 4, 5p)
** Create a short report (max. 5xA4 pages) presenting concept of your simple game including description of its goals, challenges  and logic (1p).
** Design the game scenes and menus (2p)
** Describe the controls and inputs (2p)
* Basic logic and graphics (Week 8, 15p)
** Show off your game scene with your graphics (5p)
** Demonstrate implementation of basic controls of your game (5p)
** Basic game logic and animation (5p)
* Final Presentation(Week 12, 20p)
** Present the completed game including starting and ending screens (10p)
** Game logic must be complete as specified in Concept (5p)
** Evaluate and profile your game, identify weak points (5p)

!!!Consultations
Consultations outside of courses are available during the consultation hours noted in the [[About Me]] page.

!!!Lecture Slides
# Introduction ([[pdf|ZTIAPL/2015/1_Introduction.pdf]])
# Applications ([[pdf|ZTIAPL/2015/2_Applications.pdf]], [[zip|ZTIAPL/2015/2_Applications.zip]])
# MVC ([[pdf|ZTIAPL/2015/3_MVC.pdf]], [[zip|ZTIAPL/2015/3_MVC.zip]])
# ~WIMPs ([[pdf|ZTIAPL/2015/4_WIMPS.pdf]], [[zip|ZTIAPL/2015/4_Events.zip]])
# Widgets ([[pdf|ZTIAPL/2015/5_Widgets.pdf]], [[zip|ZTIAPL/2015/5_Widgets.zip]])
# Web ([[pdf|ZTIAPL/2015/6_Web.pdf]], [[zip|ZTIAPL/2015/6_Web.zip]])
# REST ([[pdf|ZTIAPL/2015/7_REST.pdf]], [[zip|ZTIAPL/2015/7_REST.zip]])
# Testing ([[pdf|ZTIAPL/2015/8_Testing.pdf]], [[zip|ZTIAPL/2015/8_Testing.zip]])
# ~OpenSource ([[pdf|ZTIAPL/2015/9_OpenSource.pdf]])
!!!Lecture
Mon 11:00 - 12:50 @ U120

!!!Courses
Wed 14:00-15:50 @ ~CPUa
Wed 16:00-17:50 @ ~CPUa
Wed 14:00-15:50 @ ~CPUb
Wed 16:00-17:50 @ ~CPUb

!!!Useful resources
# [[Codeacademy JS|http://www.codecademy.com/tracks/javascript]]
# [[W3Schools|http://www.w3schools.com/]]
# [[HTML5 Canvas Tutorials|http://www.html5canvastutorials.com/]]
# [[DevDocs Reference|http://devdocs.io]]
# [[Game Mechanics Explorer|http://gamemechanicexplorer.com/]]

!!!Project
* Concept (Week 4, 5p)
** Create a short report (max. 5xA4 pages) presenting concept of your simple game including description of its goals, challenges  and logic (1p).
** Design the game scenes and menus (2p)
** Describe the controls and inputs (2p)
* Basic logic and graphics (Week 8, 15p)
** Show off your game scene with your graphics (5p)
** Demonstrate implementation of basic controls of your game (5p)
** Basic game logic and animation (5p)
* Final Presentation(Week 12, 20p)
** Present the completed game including starting and ending screens (10p)
** Project needs to be cleanly organized into multiple files and use object encapsulation (5p)
** Evaluate and profile your game, identify weak points (5p)

!!!Consultations
Consultations outside of courses are available during the consultation hours noted in the [[About Me]] page.

!!!Lecture Slides
# Introduction ([[pdf|ZTIAPL/2016/1_Introduction.pdf]])
# Applications ([[pdf|ZTIAPL/2016/2_Applications.pdf]], [[zip|ZTIAPL/2016/2_Applications.zip]])
# MVC ([[pdf|ZTIAPL/2016/3_MVC.pdf]], [[zip|ZTIAPL/2016/3_MVC.zip]])
# ~WIMPs ([[pdf|ZTIAPL/2016/4_WIMPS.pdf]], [[zip|ZTIAPL/2016/4_Events.zip]])
# Widgets ([[pdf|ZTIAPL/2016/5_Widgets.pdf]], [[zip|ZTIAPL/2016/5_Widgets.zip]])
# Web ([[pdf|ZTIAPL/2016/6_Web.pdf]], [[zip|ZTIAPL/2016/6_Web.zip]])
# REST ([[pdf|ZTIAPL/2016/7_REST.pdf]], [[zip|ZTIAPL/2016/7_REST.zip]])
# Testing ([[pdf|ZTIAPL/2016/8_Testing.pdf]], [[zip|ZTIAPL/2016/8_Testing.zip]])
# ~OpenSource ([[pdf|ZTIAPL/2016/9_OpenSource.pdf]])
# HCI ([[pdf|ZTIAPL/2016/10_HCI.pdf]])
!!!Lecture
Mon 11:00 - 12:50 @ U120

!!!Courses
Thu 13:00-14:50 @ ~CPUc
Thu 15:00-16:50 @ ~CPUc
Thu 13:00-15:50 @ ~CPUd
Thu 13:00-17:50 @ ~CPUd

!!!Useful resources
# [[Codeacademy JS|http://www.codecademy.com/tracks/javascript]]
# [[W3Schools|http://www.w3schools.com/]]
# [[HTML5 Canvas Tutorials|http://www.html5canvastutorials.com/]]
# [[DevDocs Reference|http://devdocs.io]]
# [[Game Mechanics Explorer|http://gamemechanicexplorer.com/]]

!!!Project
* Concept (Week 4, 5p)
** Create a short report (max. 5xA4 pages) presenting concept of your simple game including description of its goals, challenges  and logic (1p).
** Design the game scenes and menus (2p)
** Describe the controls and inputs (2p)
* Basic logic and graphics (Week 8, 15p)
** Show off your game scene with your graphics (5p)
** Demonstrate implementation of basic controls of your game (5p)
** Basic game logic and animation (5p)
* Final Presentation(Week 12, 20p)
** Present the completed game including starting and ending screens (10p)
** Project needs to be cleanly organized into multiple files and use object encapsulation (5p)
** Evaluate and profile your game, identify weak points (5p)

!!!Consultations
Consultations outside of courses are available during the consultation hours noted in the [[About Me]] page.

!!!Lecture Slides
# Introduction ([[pdf|ZTIAPL/2017/1_Introduction.pdf]])
# Applications ([[pdf|ZTIAPL/2017/2_Applications.pdf]], [[zip|ZTIAPL/2017/2_Applications.zip]])
# MVC ([[pdf|ZTIAPL/2017/3_MVC.pdf]], [[zip|ZTIAPL/2017/3_MVC.zip]]) 
# ~WIMPs ([[pdf|ZTIAPL/2017/4_WIMPS.pdf]], [[zip|ZTIAPL/2017/4_Events.zip]])
# Widgets ([[pdf|ZTIAPL/2017/5_Widgets.pdf]], [[zip|ZTIAPL/2017/5_Widgets.zip]])
# Web ([[pdf|ZTIAPL/2017/6_Web.pdf]], [[zip|ZTIAPL/2017/6_Web.zip]])
# REST ([[pdf|ZTIAPL/2017/7_REST.pdf]], [[zip|ZTIAPL/2017/7_REST.zip]])
# Testing ([[pdf|ZTIAPL/2017/8_Testing.pdf]], [[zip|ZTIAPL/2017/8_Testing.zip]])
# ~OpenSource ([[pdf|ZTIAPL/2017/9_OpenSource.pdf]])
# HCI ([[pdf|ZTIAPL/2017/10_HCI.pdf]])
[[LuaDist|http://www.luadist.org]] is an effort to provide self contained packages for the Lua programming language. All packages are built using CMake which helps us to ensure compatibility between multiple platforms, architectures and compilers. Packages, called dists, contain dependency information and can be automatically deployed using the provided deployment utility. Dists can however be installed independently provided you ensure all its dependencies are available. This allows you to reuse our modules to build custom Lua distributions.

* [[About Me]]
* [[News]]
* [[Research]]
* [[Publications]]
* [[Projects]]
* [[Teaching]]
* [[Other]]

<<search>>
''13.02.2017'' Updated course page for [[Introduction to Interactive Applications Development 2017]]
''18.09.2015'' New course page for [[Principles of Computer Graphics and Image Processing 2016]]
''15.02.2016'' Updated course page for [[Introduction to Interactive Applications Development 2016]]
''19.09.2015'' New course page for [[Principles of Computer Graphics and Image Processing 2015]]
''16.02.2015'' Updated course page for [[Introduction to Interactive Applications Development 2015]]
''25.09.2014'' Set up course page for [[Principles of Computer Graphics and Image Processing 2014]]
''17.02.2014'' New course page for [[Introduction to Interactive Applications Development 2014]]
''26.09.2013'' Set up course page for [[Principles of Computer Graphics and Image Processing 2013]]
''26.02.2013'' New course page for [[Introduction to Interactive Applications Development 2013]]
''28.10.2012'' Updated information for [[Parallel Programming 2012]] and [[Principles of Computer Graphics and Image Processing 2012]]
''01.10.2011'' I have successfully defended my dissertation.
''24.09.2011'' My dissertation will be defended on 30.09.2011 10:00 at FIIT STU room D220.
''21.09.2011'' Updated [[About Me]] with new consultation hours.
''19.09.2011'' Moved HomePage to [[TiddlyWiki|http://www.tiddlywiki.com/]]
These interface options for customising TiddlyWiki are saved in your browser

<<option chkRegExpSearch>> RegExpSearch
<<option chkCaseSensitiveSearch>> CaseSensitiveSearch
<<option chkAnimate>> EnableAnimations

Also see AdvancedOptions
!!!Administration of hardware
[[TESLA01 server access requests and administration]]
PaPP is a development environment for programming on Windows, it is self contained and does not require any installation beyond unpacking.

!!!Download
Download the package from:
http://www.github.com/drahosp/PaPP

!!!Installation/Running
Unpack the zip/tar archive to path without spaces eg. "C:\work\~PaPP" and run codeblocks.bat.

!!!Notes
*To run MPI examples you need to run "smpd -d" daemon from console. Read MPICH2 documentation for additional details.
*To run examples on OSX please have Xcode installed
*To run examples on Linux install: build-essential, freeglut2-dev, openmpi-bin, libopenmpi-dev 
<!--{{{-->
	
  <div class='header'>
      <div class='headerShadow'>
        <span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
        <span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
      </div>
      <div class='headerForeground'>
        <span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
        <span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
      </div>
  </div>
  <div id='topMenu' refresh='content' tiddler='TopMenu'></div>
  <!-- div id='mainMenu' refresh='content' tiddler='MainMenu'></div -->
  <div id='displayArea'>
    <div id='messageArea'></div>
    <div id='tiddlerDisplay'></div>
  </div>
  <div id='footer' refresh='content' force='true' tiddler='Footer'></div>

<!--}}}-->
!!!Courses
Monday 8:00 - 10:00 @ ~T-PC
Monday 10:00 - 12:00 @ ~T-PC

*Official announcements can be found on [[Michal Cernansky's|http://www2.fiit.stuba.sk/~cernans/]] homepage

!!! PaPP Development Environment
*Development environment for parallel programming is available at [[GitHub|https://github.com/drahosp/PaPP]]
*Finding AND FIXING bugs using [[GitHub|http://www.github.com]] pull request gets you bonus points.
*Examples run on Linux and Mac, you can use the native compiler instead

!!!Test 1 - Preparations
*Try to set up a project with pthreads
*Get to know the debugging tools
*Learn and understand synchronization and locking using pthreads
*Understand condition variables

!!!Consultations
Consultations outside of courses are available during the consultation hours noted in the [[About Me]] page.
!!!Courses
Monday 8:00 - 10:00 @ ~T-PC
Monday 10:00 - 12:00 @ ~T-PC

*Official announcements can be found on [[Michal Cernansky's|http://www2.fiit.stuba.sk/~cernans/]] homepage

!!! PaPP Development Environment
*Development environment for parallel programming is available at [[GitHub|https://github.com/drahosp/PaPP]]
*Finding AND FIXING bugs using [[GitHub|http://www.github.com]] pull request gets you bonus points.
*Examples run on Linux and Mac, you can use the native compiler instead

!!!Test 1 - Preparations
*Try to set up a project with pthreads
*Get to know the debugging tools
*Learn and understand synchronization and locking using pthreads
*Understand condition variables

!!!Consultations
Consultations outside of courses are available during the consultation hours noted in the [[About Me]] page.
!!!Courses
Wed 11.00-12.50 @ cpu-e
Wed 11.00-12.50 @ cpu-i
Wed	17.00-18.50 @ c117b
Wed 19.00-20.50 @ c117b
Wed 19.00-20.50 @ ~T-PC

!!! PaPP Development Environment
*Development environment for parallel programming and computer graphics is available at [[GitHub|https://github.com/drahosp/PaPP]]
*Finding AND FIXING bugs using [[GitHub|http://www.github.com]] pull request gets you bonus points.
*Submitting new examples will get you bonus points once they are accepted. Again, use pull requests.
*Examples should run on Linux and Mac, you can use the native compiler instead so consider other platforms when submitting changes.

!!!Courses
* Image Processing (Week 4, 10p)
** Implement a simple application capable of loading an color image bitmap file ([[raw RGB format|http://www.online-utility.org/image_converter.jsp?outputType=RGB]]) or generate a procedural image. Apply per pixel color filtering to the image. Implement a convolution image filter and a two-pass gaussian filter. For additional points create a composite image of two layers with alpha channel.
** You can use the ~OpenGL codebase from PaPP as a startpoint.
** Project must be done using C with direct memory manipulation.
** Following evaluation applies:
*** Loading a bitmap image from file (2p)
*** Color filtering (black and white, contrast, brightness, sepia, inversion etc.) (2p)
*** Convolution filter with variable kernel size with source defined matrix. (2p)
*** Two pass gaussian filter. (2p)
*** Layer composite image from two images with alpha channel. (2p)
* Drawing (Week 8, 10p)
** Implement a simple application capable of drawing lines, triangles and polygons. Draw simple shapes such as rectangles, triangles and circles using your line drawing algorithm. Implement a filled 2D polygon rendering using filled triangles that can be texture using a 2D raster image. Demonstrate the use of 3D projection to display a simple rotating 3D polygonal object such as cube or pyramid.
*** Simple shapes using your own 2D line drawing algorithm (2p)
*** Filled 2D triangle drawing using your line drawing algorithm (2p)
*** Textured 2D polygon drawing using triangles (2p)
*** 3D projected polygonal object with animated rotation (4p)
* Project: 3D graphics (Week 12, 20p)
** Dynamic ~OpenGL scene with multiple animated objects and lighting. Pick a project scene you like eg. Planetary system, Billiards, Chess Board etc. Simple interactive games earn you up to 5 bonus points.
*** Hierarchical object transformation and camera (5p)
*** Use of lighting (5p)
*** Use of textures (5p)
*** Animation using keyframes, splines or simulation (5p)
* NOTES:
** Tasks submitted late will be penalized 3p per week.
** No tasks and projects will be accepted after the last course.
** Yes, you can submit your tasks and projects early.

!!!Consultations
Consultations outside of courses are available during the consultation hours noted in the [[About Me]] page.

!!!Lecture Slides
# Introduction, History, Displays ([[pdf|PPSSO/2012/1_Introduction.pdf]])
# Color and Image Processing ([[pdf|PPSSO/2012/2_Color.pdf]])
# Image Processing ([[pdf|PPSSO/2012/3_Image_Processing.pdf]])
# Modeling ([[pdf|PPSSO/2012/4_Modeling.pdf]])
# Paths ([[pdf|PPSSO/2012/5_Paths.pdf]])
# Projections ([[pdf|PPSSO/2012/6_Projections.pdf]])
# Visibility ([[pdf|PPSSO/2012/7_Visibility.pdf]])
# Subdivision ([[pdf|PPSSO/2012/8_Subdivision.pdf]])
# Ray Casting ([[pdf|PPSSO/2012/9_Raycasting.pdf]])
# Shading and Animation ([[pdf|PPSSO/2012/10_Shading_Animation.pdf]])
# Dynamics ([[pdf|PPSSO/2012/11_Dynamics.pdf]])
!!!Sample Code
* See the updated [[PaPP|https://github.com/drahosp/PaPP]] project.
!!!~OpenGL Resources
# Introduction to ~OpenGL ([[pdf|http://dl.dropbox.com/u/84845/wiki/PPSSO/2012/OpenGL.pdf]])
# [[Red Book|http://www.glprogramming.com/red/]]
# [[NeHe OpenGL Tutorials|http://nehe.gamedev.net/]]
!!!Lecture
Thu 15:00 - 17:40 @ de300, Drahoš

!!!Courses
Fri 8.00-9.50 @ -1.40 (~PU1), Drahoš
Fri 8.00-9.50 @ -2.01/d(~CPUd), Kapec
Fri 13.00-14.50 @ -1.40 (~PU1), Drahoš
Fri 13.00-14.50 @ -2.01/d(~CPUd), Kapec
Fri 15.00-16.50 @ -1.40 (~PU1), Drahoš
Fri 15.00-16.50 @ -1.42 (~PU2), Kapec

!!! PaPP Development Environment
*Development environment for parallel programming and computer graphics is available at [[GitHub|https://github.com/drahosp/PaPP]]
*Finding AND FIXING bugs using [[GitHub|http://www.github.com]] pull request gets you bonus points.
*Submitting new examples will get you bonus points once they are accepted. Again, use pull requests.
*Examples should run on Linux and Mac, you can use the native compiler instead so consider other platforms when submitting changes.

!!!Courses
* ''Image Processing'' (Week 4, 10p)
** Implement a simple application capable of loading an color image bitmap file ([[raw RGB format|http://www.online-utility.org/image_converter.jsp?outputType=RGB]]) or generate a procedural image. Apply per pixel color filtering to the image. Implement a convolution image filter and a two-pass gaussian filter. For additional points create a composite image of two layers with alpha channel.
** You can use the ~OpenGL codebase from PaPP as a startpoint.
** Project must be done using C with direct memory manipulation.
** Following evaluation applies:
*** Loading a bitmap image from file (2p)
*** Color filtering (black and white, contrast, brightness, sepia, inversion etc.) (2p)
*** Convolution filter with variable kernel size with source defined matrix. (2p)
*** Two pass gaussian filter. (2p)
*** Layer composite image from two images with alpha channel. (2p)
* ''Drawing'' (Week 8, 10p)
** Implement a simple application capable of drawing lines, triangles and polygons. Draw simple shapes such as rectangles, triangles and circles using your line drawing algorithm. Implement a filled 2D polygon rendering using filled triangles that can be texture using a 2D raster image. Demonstrate the use of 3D projection to display a simple rotating 3D polygonal object such as cube or pyramid.
*** Simple shapes using your own Bézier curve drawing algorithm (2p)
*** Filled 2D triangle drawing using your line drawing algorithm (2p)
*** Textured 2D polygon drawing using triangles (2p)
*** 3D projected polygonal object with animated rotation (4p)
* ''Project:'' 3D graphics (Week 12, 20p)
** Dynamic ~OpenGL scene with multiple animated objects and lighting. Pick a project scene you like eg. Planetary system, Billiards, Chess Board etc. Simple interactive games earn you up to 5 bonus points.
*** Hierarchical object transformation and camera (5p)
*** Use of lighting (5p)
*** Use of textures (5p)
*** Animation using keyframes, splines or simulation (5p)
* ''NOTES:''
** Tasks submitted late will be penalized 3p per week.
** No tasks and projects will be accepted after the last course.
** Yes, you can submit your tasks and projects early.

!!!Consultations
Consultations outside of courses are available during the consultation hours noted in the [[About Me]] page.

!!!Lecture Slides
# Introduction, History, Displays ([[pdf|PPSSO/2013/1_Introduction.pdf]])
# Color and Image Processing ([[pdf|PPSSO/2013/2_Color.pdf]])
# Image Processing ([[pdf|PPSSO/2013/3_Image_Processing.pdf]])
# Modeling ([[pdf|PPSSO/2013/4_Modeling.pdf]])
# Paths ([[pdf|PPSSO/2013/5_Paths.pdf]])
# Projections ([[pdf|PPSSO/2013/6_Projections.pdf]])
# Visibility ([[pdf|PPSSO/2013/7_Visibility.pdf]])
# Subdivision ([[pdf|PPSSO/2013/8_Subdivision.pdf]])
# Ray Casting and Lighting ([[pdf|PPSSO/2013/9_Raycasting.pdf]])
# Shading and Animation ([[pdf|PPSSO/2013/10_Shading_Animation.pdf]])
# Dynamics and Advanced Mapping ([[pdf|PPSSO/2013/11_Dynamics.pdf]])

!!!Sample Code
* See the updated [[PaPP|https://github.com/drahosp/PaPP]] project.
!!!~OpenGL Resources
# Introduction to ~OpenGL ([[pdf|http://dl.dropbox.com/u/84845/wiki/PPSSO/2012/OpenGL.pdf]])
# [[Red Book|http://www.glprogramming.com/red/]]
# [[NeHe OpenGL Tutorials|http://nehe.gamedev.net/]]
# [[Modern OpenGL Tutorials|http://open.gl/]]
!!!Lecture
Thu 14:00 - 15:50 @ de300, Drahoš

!!!Courses
Fri 8.00-9.50 @ -1.40(~PU1), Drahoš
Fri 8.00-9.50 @ -1.42(~PU2), Paprčka
Fri 10:00-11:50 @ -1.40(~PU1), Drahoš
Fri 10:00-11:50 @ -1.42(~PU2), Paprčka
Fri 14.00-15.50 @ -1.40(~PU1), Drahoš
Fri 14.00-15.50 @ -1.42(~PU2), Kapec
Fri 16.00-17.50 @ -1.40(~PU1), Drahoš
Fri 16.00-17.50 @ -1.42(~PU2), Kapec

!!! PaPP Development Environment
*Development environment for parallel programming and computer graphics is available at [[GitHub|https://github.com/drahosp/PaPP]]
*Finding AND FIXING bugs using [[GitHub|http://www.github.com]] pull request gets you bonus points.
*Submitting new examples will get you bonus points once they are accepted. Again, use pull requests.
*Examples should run on Linux and Mac, you can use the native compiler instead so consider other platforms when submitting changes.

!!!Courses
* ''Image Processing'' (Week 4, 10p)
** Implement a simple application capable of loading an color image bitmap file ([[raw RGB format|http://www.online-utility.org/image_converter.jsp?outputType=RGB]]) or generate a procedural image. Apply per pixel color filtering to the image. Implement a convolution image filter and dithering filter. For additional points create an animated composite image of two layers with alpha channel.
** You can use the ~OpenGL codebase from PaPP as a startpoint.
** Project must be done using C with direct memory manipulation.
** Following evaluation applies:
*** Procedurally generate a fractal image (Mandelbrot Set, Julia Set etc). (2p)
*** Convolution filters (sharpen, emboss) with variable kernel size. (2p)
*** Error Diffusion Dither into 8bit(3R,3G,2B) and 1bit image (2p)
*** Layered composite of multiple images with alpha channel and animation. (4p)

* ''Drawing'' (Week 8, 10p)
** Implement a simple application capable of drawing Bézier curves with 2D transformations without ~OpenGL. Draw simple shapes using multiple Bézier curves such as font letters. Implement animated 2D transformations of the curves such as rotation, scale etc. Demonstrate the use of 3D projection to display a 3D object composed of Bézier curves or Bézier surfaces (wireframe only).
*** Simple shapes using your own Bézier curve drawing algorithm. (3p)
*** Basic animated 2D transformations. (3p)
*** 3D perspective projected Bézier surface/curve object with animated rotation. (4p)
*** BONUS: Fully shaded surface rendering (5p)

* ''Project:'' 3D graphics (Week 12, 20p)
** Dynamic ~OpenGL scene with multiple animated objects and lighting. Pick a project scene you like Billiards, Chess Board etc. Simple interactive games earn you up to 5 bonus points.
*** Hierarchical object transformation and camera (5p)
*** Use of Texture mapping on objects (5p)
*** Animation using keyframes, splines or simulation (5p)
*** Use of Phong shader for lighting with multiple light sources (5p)
*** BONUS: Simple interactive games (5p)

* ''NOTES:''
** Tasks submitted late will be penalized 3p per week.
** No tasks and projects will be accepted after the last course.
** Yes, you can submit your tasks and projects early.

!!!Consultations
Consultations outside of courses are available during the consultation hours noted in the [[About Me]] page.

!!!Lecture Slides
# Introduction, History, Displays ([[Slides|PPSSO/2014/1_Introduction.pdf]])
# Color and Image Processing ([[Slides|PPSSO/2014/2_Color.pdf]], [[OpenGL|PPSSO/2014/opengl.pdf]])
# Image Processing ([[Slides|PPSSO/2014/3_Image_Processing.pdf]])
# Modeling ([[Slides|PPSSO/2014/4_Modeling.pdf]])
# Paths ([[Slides|PPSSO/2014/5_Paths.pdf]])
# Projections ([[Slides|PPSSO/2014/6_Projections.pdf]])
# Visibility ([[Slides|PPSSO/2014/7_Visibility.pdf]])
# Subdivision ([[Slides|PPSSO/2014/8_Subdivision.pdf]])
# Raycasting ([[Slides|PPSSO/2014/9_Raycasting.pdf]])
# Shading ([[Slides|PPSSO/2014/10_Shading.pdf]])
# Dynamics ([[Slides|PPSSO/2014/11_Dynamics.pdf]])

!!!Sample Code
* See the updated [[PaPP|https://github.com/drahosp/PaPP]] project.
!!!~OpenGL Resources
# [[Red Book|http://www.glprogramming.com/red/]]
# [[NeHe OpenGL Tutorials|http://nehe.gamedev.net/]]
# [[Modern OpenGL Tutorials|http://open.gl/]]
!!!Lecture
Thu 14:00 - 15:50 @ cd150, Drahoš

!!!Courses
Mon 8.00-9.50 @ -1.42(~PU2), Drahoš
Mon 10:00-11:50 @ -1.42(~PU2), Drahoš
Wed 8.00-9.50 @ -1.40(~PU1), Kapec
Wed 8.00-9.50 @ -1.42(~PU2), Drahoš
Wed 10.00-11.50 @ -1.40(~PU1), Kapec
Wed 10.00-11.50 @ -1.42(~PU2), Drahoš
Wed 15:00-16:50 @ -1.42(~PU2), Sokolík
Wed 17:00-18:50 @ -1.42(~PU2), Sokolík

!!! PPGSO Examples
*~OpenGL 3.3 examples for PPGSO are available at [[drahosp/ppgso|https://github.com/drahosp/ppgso]]
*Finding AND FIXING bugs using [[GitHub|https://github.com/drahosp/ppgso/pulls]] pull request gets you bonus points.
*Submitting new examples will get you bonus points when they are accepted. Again, use pull requests.
*Examples should run on Windows,Linux and Mac.
*More examples will be added during the semester.

!!!Course  tasks
* ''Image Processing'' (Week 6, 15p)
** Implement a simple application capable of displaying a color image using from a bitmap file ([[raw RGB format|http://www.online-utility.org/image_converter.jsp?outputType=RGB]]). Apply per pixel color filtering to the image, implement a convolution image filter with variable kernel size. Create animation of at least two or more image layers with alpha channel. Draw shapes onto the image using bezier curves.
** You can use the ~OpenGL codebase from [[drahosp/ppgso|https://github.com/drahosp/ppgso]] as a startpoint.
** Project must be done using C/C++ with direct memory manipulation.
** Following evaluation applies:
*** Convolution filters (sharpen, emboss, gauss) with variable kernel size. (5p)
**** Implement variable size kernel.
**** Correctly handle border pixels.
**** Demonstrate at least two distinct filter results.
*** Layered composite of multiple images with alpha channel and animation. (5p)
**** Merge at least two variable size layers onto the framebuffer.
**** Handle blending near framebuffer borders correctly.
**** Animate one of the layers, for example follow the mouse movement on the screen.
*** Simple shapes using your own Bézier curve drawing algorithm. (5p)
**** Create simple shapes such as fonts symbols or wire drawings using multiple curves.
**** Dynamically compute points on the curve depending on the size, do not oversample.
**** Connect points using efficient line drawing algorithms eg. Bresenham.

* ''Project:'' 3D graphics (Week 12, 25p)
** Interactive ~OpenGL application with multiple animated objects and lighting. Recommended projects are recreations of simple 2D games from the 80s with 3D graphics (~PacMan, Tetris, etc). The project must contain following features:
*** Hierarchical object transformation and camera (5p)
*** Use of Texture mapping on objects (5p)
*** Animation using keyframes, splines or simulation (5p)
*** Use of Phong shader for lighting with multiple light sources (5p)
*** Keyboard or mouse interaction and simple game logic (5p)

* ''NOTES:''
** Consult your project ideas no later then week 6.
** Tasks submitted late will be penalized 3p per week.
** No tasks and projects will be accepted after the last course.
** Yes, you can submit your tasks and projects early.

!!!Consultations
Consultation hours outside of courses are noted in the [[About Me]] page.

!!!Lecture Slides
# Introduction, History, Displays ([[Slides|PPGSO/2015/1_Introduction.pdf]])
# Color ([[Slides|PPGSO/2015/2_Color.pdf]] | [[OpenGL|PPGSO/2015/SIGGRAPH_2012_OPENGL.pdf]])
# Image Processing ([[Slides|PPGSO/2015/3_Image_Processing.pdf]])
# Modeling ([[Slides|PPGSO/2015/4_Modeling.pdf]])
# Paths ([[Slides|PPGSO/2015/5_Paths.pdf]])
# Projections ([[Slides|PPGSO/2015/6_Projections.pdf]])
# Visibility ([[Slides|PPGSO/2015/7_Visibility.pdf]])
# Subdivision ([[Slides|PPGSO/2015/8_Subdivision.pdf]])
# Raycasting ([[Slides|PPGSO/2015/9_Raycasting.pdf]])
# Shading ([[Slides|PPGSO/2015/10_Shading.pdf]])
# Dynamics ([[Slides|PPGSO/2015/11_Dynamics.pdf]])

!!!~OpenGL Resources
# Examples for ~OpenGL 1.2 used in previous years are available in the [[PaPP|https://github.com/drahosp/PaPP/tree/master/examples/opengl]] project.
# [[Red Book|http://www.glprogramming.com/red/]]
# [[NeHe OpenGL Tutorials|http://nehe.gamedev.net/]]
# [[Modern OpenGL Tutorials|http://open.gl/]]
!!!Lecture
Tue 7.00-8.50 @ -1.61 (Aula Magna), Drahoš

!!!Courses
Mon 8.00-9.50 @ -1.42 (DIGILAB), Valiček
Mon 10:00-11:50 @ -1.42 (DIGILAB), Valiček
Tue 9.00-10.50 @ -1.42 (DIGILAB), Drahoš
Tue 11.00-12.50 @ -1.42 (DIGILAB), Drahoš
Tue 9.00-10.50 @ -1.40 (~PU1), Kapec
Tue 11.00-12.50 @ -1.40 (~PU1), Kapec
Wed 17.00-18.50 @ -1.42 (DIGILAB), Drahoš
Wed 19.00-20.50 @ -1.42 (DIGILAB), Drahoš
Wed 17.00-18.50 @ -1.40 (~PU1), Svrček
Wed 19.00-20.50 @ -1.40 (~PU1), Svrček

!!! PPGSO Couse code base and Examples
*~OpenGL 3.3 examples for PPGSO are available at [[drahosp/ppgso|https://github.com/drahosp/ppgso]]
*Finding AND FIXING bugs using [[GitHub|https://github.com/drahosp/ppgso/pulls]] pull request gets you bonus points.
*Submitting new examples will get you bonus points when they are accepted. Again, use pull requests.
*Examples should run on Windows,Linux and Mac.

!!! ''Course  Tasks'' (Weeks 2 to 8, 15p)
1. Load and save Framebuffer to a raw RGB file (8bit per channel). (2p)
** Convert any image to 512x512 RAW GRB, you can use the following online convertor to obrain [[RAW images|http://www.online-utility.org/image_converter.jsp?outputType=RGB]]
** Use fopen/fread to directly load the framebuffer contents from a file.
** Invert the color of each pixel in the framebuffer.
** Save the image as result.rgb and display it on screen using the gl_texture sample.
2. Shape drawing using Bresenham's line algorithm. (2p)
** Extend the Bresenham algorithm from Lecture to 4 quadrants, draw a 2D star on the framebuffer.
3. Bezier curve rednering using ~OpenGL lines. (2p)
** Implement cubic bezier curve rendering using ~OpenGL lines, draw a letter from the alphabet with straight and curved lines (eg. letter D).
4. Implement a convolution filter using GLSL. (2p)
** Extend the provided texture mapping shader to create a basic (embos, sharpen etc.) 5x5 convolution filter.
5. Rendering of basic 2D filled shapes using ~OpenGL triangles with 2D transformation matrix. (2p)
** Render any alphabet letter using filled polygons, apply 2D transformation matrix to animate rotation/scale/position.
6. Render Bezier surface using ~OpenGL with texture mapping. (2p)
** Generate a Bezier surface of variable density with UV coordinates, render the generated mesh with texturing applied.
7. Animated Bezier surface with 3D transformations and input. (3p)
** Extend the previous task to animate the Bezier surface by moving its control points, add 3D rotation controlled using keyboard.

!!! ''Project:'' 3D graphics (Week 12, 25p)
* Interactive ~OpenGL application with multiple animated objects and lighting. Recommended projects are recreations of simple 2D games from the 80s with 3D graphics (~PacMan, Tetris, etc). The project must contain following features:
** Hierarchical object transformation and camera (5p)
** Use of Texture mapping on objects (5p)
** Animation using keyframes, splines or simulation (5p)
** Use of Phong shader for lighting with multiple light sources (5p)
** Keyboard or mouse interaction and simple game logic (5p)

!!! ''NOTES'':
* Course tasks must be presented personally during the course.
* Each course task must be submitted to AIS before 48 hours after the course takes place.
* Course tasks are to be submitted late will be penalized 1p per week.
* Consult your project ideas no later then week 3.
* Project deadline is absolute, no projects will be accepted after the last course.
* Projects and tasks can be submitted early.

!!!Consultations
Consultation hours outside of courses are noted in the [[About Me]] page.

!!!Lecture Slides
# Introduction, History, Displays ([[Slides|PPGSO/2016/1_Introduction.pdf]])
# Color ([[Slides|PPGSO/2016/2_Color.pdf]])
# Image Processing ([[Slides|PPGSO/2016/3_Image_Processing.pdf]])
# Modeling ([[Slides|PPGSO/2016/4_Modeling.pdf]] | [[OpenGL|PPGSO/2015/SIGGRAPH_2012_OPENGL.pdf]])
# Paths ([[Slides|PPGSO/2016/5_Paths.pdf]])
# Projections ([[Slides|PPGSO/2016/6_Projections.pdf]])
# Visibility ([[Slides|PPGSO/2016/7_Visibility.pdf]])
# Subdivision ([[Slides|PPGSO/2016/8_Subdivision.pdf]])
# ~RayCasting ([[Slides|PPGSO/2016/9_Raycasting.pdf]])
# Shading ([[Slides|PPGSO/2016/10_Shading.pdf]])

!!!~OpenGL Resources
# [[Modern OpenGL Tutorial|http://www.opengl-tutorial.org/beginners-tutorials/tutorial-1-opening-a-window/]]
# Examples for ~OpenGL 1.2 used in previous years are available in the [[PaPP|https://github.com/drahosp/PaPP/tree/master/examples/opengl]] project.
# [[Red Book|http://www.glprogramming.com/red/]]
# [[NeHe OpenGL Tutorials|http://nehe.gamedev.net/]]
# [[Modern OpenGL Tutorials|http://open.gl/]]
!!!Personal
*[[LuaDist]]
*[[A photo-realistic head model for real-time animation]]
*[[TrollEdit]]
*[[PaPP]]
*[[Animik]]

!!!Diploma Projects
!!!!Current
*Belica Andrej, ongoing, [[Visualization of deformable objects]]
*Mikuláš Miroslav, ongoing, [[Simulation of deformable objects]]
*Hurban Tomáš, ongoing, [[Simulation and visualization of hair on GPU]]

!!!!2011
*Ondruška Peter, defended, [[Interactive animiation editor]]
*Mihalovič Martin, defended, [[Animik - an interactive animation editor|Animik]]
*Palo Dušan, defended, [[Simulation and visualization of fluids in constrained environments]]
*Kallo Ondrej, defended, [[Simulation and visualization of airflow in constrained environments]]

!!!!2009
*Ivanič Michal, defended, [[AJAX based database applications]] *
*Koščák Michal, defended, [[Natural speech computer interfaces]]
*Kiselkov Sašo, defended, [[Visual enhancements in source code editing]]

!!!!2008
*Kišac Ivan, defended, [[Animation of speech]]
*Jajcaj Michal, defended, [[Simulation and visualization od human hair]]
*Hiriak Ondrej, defended, [[Simulation of fluids using GPU]]
*Kohaut Peter, defended, [[Virtual worlds based on peer to peer network]]
*Eliáš Juraj, defended, [[Implementation of neural networks using GPGPU]]

Success rate: 12/12 (100%)

!!!Bachelor Projects
!!!!Current
*Šrank Marek, starting, [[Software dependencies management system]]
*Tomčo Marek, starting, [[Photorealistic visualization of hair]]
*Pavla Matej, starting, [[Human motion capture using Kinect]]
*Hudák Miroslav, starting, [[Human motion capture using Kinect]]

!!!!2011
*Mydla Ľudovít, defended, [[Phonetic speech analysis]]
*Vacula Matúš, defended, [[3D object editor for the Web]]
*Švarc Jaroslav, defended, [[GLEW module for the Lua programming language]]
*Košický Martin, defended, [[GLSL editor for the Web]]
*Polakovič Patrik, defended, [[OpenCL module for the Lua programming language]]

!!!!2010
*Lang Jozef, defended, [[Automated software deployment in a multi-platform environment|LuaDist]]
*Lipták Matej, defended, [[Automated software deployment in a multi-platform environment|LuaDist]]
*Kundrát Michal, defended, [[Interactive animation tool for virtual reality environments|Animik]]
*Vinarčík Jaroslav, delayed but defended, [[Optical 3D point tracking system]]

!!!!2009
*Fojtík Michal, defended, [[Dynamic binding of libraries for the Lua programming language]]
*Paulovič Aurel, defended, [[An interactive forum based on modern web technologies]] *
*Perdík Pavol, defended, [[An interactive forum based on modern web technologies]] *
*Ondrášek Maroš, defended, [[A visual interface for debugging Lua applications]]
*Pavlík Adam, defended, [[Photorealistic visualization of human eye]]
*Koprda Matúš, defended, [[Interactive Cg editor]]

!!!!2008
*Bleho Juraj, defended, [[Interactive GLSL editor]]
*Frívaldský Dalibor, defended, [[Interactive GLSL editor]]

!!!!2007
*Sojka Marek, defended, [[Phonetic speech analysis]]
*Čimo Peter, defended, [[Photorealistic rendering of the human face]]
*Janiš Pavol, defended, [[Photorealistic rendering of the human face]]
*Fris Martin, defended, [[Visualization and navigation in tree structures]]

Success rate: 21/21 (100%)
Projects marked with * were not initially under my supervision.

!!!Team Projects
* 2011, Team 10/11, [[TrollEdit - a text editor with graphical enhancements]]
* 2009, [[Team 05/09|http://labss2.fiit.stuba.sk/TeamProject/2009/team05is-si/index.html]], [[TrollEdit - a text editor with graphical enhancements]]
* 2008, [[Team 18/08|http://labss2.fiit.stuba.sk/TeamProject/2008/team18is-si/index.html]], [[Module management for the Lua programming language]]
!!!2011
*{{{Drahoš, Peter: Facial Expression Composition Using Dynamic Displacement Mapping, SCCG 2011 27th Spring conference on Computer Graphics, April 28-30, 2011, Post conference proceedings SCCG 2011 is to be published by ACM Publishing House.}}}

!!!2010
*{{{Drahoš, Peter: Practical Library for Facial Animation, INTELS 2010, Intelligent Systems: Proceedings of the Ninth International Symposium, Vladimir, Rusko, 28.6.-2.7.2010, p. 118-123}}}

!!!2009
*{{{Kapec, Peter - Drahoš, Peter: Hypergraph based software representation, mining and visualization. In: INFORMATICS 2009 : Proceedings of the Tenth International Conference on Informatics, Herľany, Slovakia, November 23.-25, 2009. - : Department of Computers and Informatics FEEI TU of Košice, 2009. - ISBN 978-80-8086-126-1. - S. 253-258}}}
*{{{Šperka. Martin – Drahoš, Peter – Kovárová, Alena: Computer Graphics and Related Subjects at the FIIT STU and FI BVŠP , Future of Computer Graphics Education - FCGE ́09: Spring Conference on Computer Graphics. - Budmerice, April 22, 2009, p. 5-7}}}
*{{{Drahoš, Peter: Reusable performance driven facial animation system  : Extended abstract. In: GraVisMa 2009 Abstract Proceedings, University of West Bohemia Plzeň, September 2-5, 2009. - : Západočeská univerzita v Plzni, 2009. - ISBN 978-80-86943-92-3.}}}

!!!2008
*{{{Drahoš, Peter - Kapec, Peter: Knowledge-based programming environments.
In: ITAT 2008: Informačné Technológie - Aplikácie a Teória : Zborník príspevkov prezentovaných na pracovnom seminári ITAT, Hrebienok, September 2008. - Seňa : PONT s.r.o., 2008. - ISBN 978-80-969184-8-5. - S. 27-30}}}
*{{{Drahoš, Peter - Kapec, Peter: Visually Driven Software Development Environment for Heterogeneous Programming. In: Student Research Conference 2008. 4th Student Research Conference in Informatics and Information Technologies Bratislava, April 30, 2008 : Proceedings in Informatics and Information Technologies. - : STU v Bratislave FIIT, 2008. - ISBN 978-80-227-2848-5. - S. 222-229}}}

!!!2007
*{{{Šperka, Matrin - Drahoš, Peter: Face Expressions Animation in e-learning, Communication & Cognition Vol. 41, No. 1-2, p. 27-40}}}
*{{{Drahoš, Peter. Modeling Virtual Face to Face Communication Interfaces, In: Student Research Conference 2007. 3rd Student Research Conference in Informatics and Information Technologies Bratislava, April 18, 2007, p. 277-284}}}

!!!2006
*{{{Šperka, Matrin - Drahoš, Peter: Face Expressions Animation in e-learning, E- Learning Conference ́06, Computer Science Education with a section PhD Students & e-learning, 7th and 8th September 2006, Coimbra, Portugal, Proceedings p. 13-18}}}
*{{{Drahoš, Peter: Effective Realtime Human Face Animation, Spring Conference on Computer Graphics SCCG 2006: in cooperation with ACM SIGGRAPH and Eurographics, Častá Papiernička, April 20-22, 2006, p. 63-69}}}

!!!2004
*{{{Drahoš, Peter - Kapec, Peter: Animating Human Faces Using Modified Waters Muscle Model. In: CESCG 2004: 8th Central European Seminar on Computer Graphics. Budmerice, Slovakia, April 19-21, 2004. - Vienna : Institute of Computer Graphics and Algorithms Vienna University of Technology, 2004. - S. 141-148}}}

!!!Dissertation
Supervisor: assoc. prof. Martin Šperka, ~PhD.
Theme:  ''A photo-realistic head model for real-time animation''

Short [[absrtact|A photo-realistic head model for real-time animation]] of my thesis. Results have been published in several [[papers|Publications]].
!!!Research interests
*Computer graphics and visualization
*Real-time rendering and photorealistic rendering
*Parallel programming
*Scientific visualization, especially software visualization
/***
|Name|SinglePageModePlugin|
|Source|http://www.TiddlyTools.com/#SinglePageModePlugin|
|Documentation|http://www.TiddlyTools.com/#SinglePageModePluginInfo|
|Version|2.9.7|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|Show tiddlers one at a time with automatic permalink, or always open tiddlers at top/bottom of page.|
This plugin allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one tiddler displayed at a time.
!!!!!Documentation
>see [[SinglePageModePluginInfo]]
!!!!!Configuration
<<<
<<option chkSinglePageMode>> Display one tiddler at a time
><<option chkSinglePagePermalink>> Automatically permalink current tiddler
><<option chkSinglePageKeepFoldedTiddlers>> Don't close tiddlers that are folded
><<option chkSinglePageKeepEditedTiddlers>> Don't close tiddlers that are being edited
<<option chkTopOfPageMode>> Open tiddlers at the top of the page
<<option chkBottomOfPageMode>> Open tiddlers at the bottom of the page
<<option chkSinglePageAutoScroll>> Automatically scroll tiddler into view (if needed)

Notes:
* The "display one tiddler at a time" option can also be //temporarily// set/reset by including a 'paramifier' in the document URL: {{{#SPM:true}}} or {{{#SPM:false}}}.
* If more than one display mode is selected, 'one at a time' display takes precedence over both 'top' and 'bottom' settings, and if 'one at a time' setting is not used, 'top of page' takes precedence over 'bottom of page'.
* When using Apple's Safari browser, automatically setting the permalink causes an error and is disabled.
<<<
!!!!!Revisions
<<<
2010.11.30 2.9.7 use story.getTiddler()
2008.10.17 2.9.6 changed chkSinglePageAutoScroll default to false
| Please see [[SinglePageModePluginInfo]] for previous revision details |
2005.08.15 1.0.0 Initial Release.  Support for BACK/FORWARD buttons adapted from code developed by Clint Checketts.
<<<
!!!!!Code
***/
//{{{
version.extensions.SinglePageModePlugin= {major: 2, minor: 9, revision: 7, date: new Date(2010,11,30)};
//}}}
//{{{
config.paramifiers.SPM = { onstart: function(v) {
	config.options.chkSinglePageMode=eval(v);
	if (config.options.chkSinglePageMode && config.options.chkSinglePagePermalink && !config.browser.isSafari) {
		config.lastURL = window.location.hash;
		if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
	}
} };
//}}}
//{{{
if (config.options.chkSinglePageMode==undefined)
	config.options.chkSinglePageMode=false;
if (config.options.chkSinglePagePermalink==undefined)
	config.options.chkSinglePagePermalink=true;
if (config.options.chkSinglePageKeepFoldedTiddlers==undefined)
	config.options.chkSinglePageKeepFoldedTiddlers=false;
if (config.options.chkSinglePageKeepEditedTiddlers==undefined)
	config.options.chkSinglePageKeepEditedTiddlers=false;
if (config.options.chkTopOfPageMode==undefined)
	config.options.chkTopOfPageMode=false;
if (config.options.chkBottomOfPageMode==undefined)
	config.options.chkBottomOfPageMode=false;
if (config.options.chkSinglePageAutoScroll==undefined)
	config.options.chkSinglePageAutoScroll=false;
//}}}
//{{{
config.SPMTimer = 0;
config.lastURL = window.location.hash;
function checkLastURL()
{
	if (!config.options.chkSinglePageMode)
		{ window.clearInterval(config.SPMTimer); config.SPMTimer=0; return; }
	if (config.lastURL == window.location.hash) return; // no change in hash
	var tids=decodeURIComponent(window.location.hash.substr(1)).readBracketedList();
	if (tids.length==1) // permalink (single tiddler in URL)
		story.displayTiddler(null,tids[0]);
	else { // restore permaview or default view
		config.lastURL = window.location.hash;
		if (!tids.length) tids=store.getTiddlerText("DefaultTiddlers").readBracketedList();
		story.closeAllTiddlers();
		story.displayTiddlers(null,tids);
	}
}


if (Story.prototype.SPM_coreDisplayTiddler==undefined)
	Story.prototype.SPM_coreDisplayTiddler=Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,tiddler,template,animate,slowly)
{
	var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
	var tiddlerElem=story.getTiddler(title); // ==null unless tiddler is already displayed
	var opt=config.options;
	var single=opt.chkSinglePageMode && !startingUp;
	var top=opt.chkTopOfPageMode && !startingUp;
	var bottom=opt.chkBottomOfPageMode && !startingUp;
	if (single) {
		story.forEachTiddler(function(tid,elem) {
			// skip current tiddler and, optionally, tiddlers that are folded.
			if (	tid==title
				|| (opt.chkSinglePageKeepFoldedTiddlers && elem.getAttribute("folded")=="true"))
				return;
			// if a tiddler is being edited, ask before closing
			if (elem.getAttribute("dirty")=="true") {
				if (opt.chkSinglePageKeepEditedTiddlers) return;
				// if tiddler to be displayed is already shown, then leave active tiddler editor as is
				// (occurs when switching between view and edit modes)
				if (tiddlerElem) return;
				// otherwise, ask for permission
				var msg="'"+tid+"' is currently being edited.\n\n";
				msg+="Press OK to save and close this tiddler\nor press Cancel to leave it opened";
				if (!confirm(msg)) return; else story.saveTiddler(tid);
			}
			story.closeTiddler(tid);
		});
	}
	else if (top)
		arguments[0]=null;
	else if (bottom)
		arguments[0]="bottom";
	if (single && opt.chkSinglePagePermalink && !config.browser.isSafari) {
		window.location.hash = encodeURIComponent(String.encodeTiddlyLink(title));
		config.lastURL = window.location.hash;
		document.title = wikifyPlain("SiteTitle") + " - " + title;
		if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
	}
	if (tiddlerElem && tiddlerElem.getAttribute("dirty")=="true") { // editing... move tiddler without re-rendering
		var isTopTiddler=(tiddlerElem.previousSibling==null);
		if (!isTopTiddler && (single || top))
			tiddlerElem.parentNode.insertBefore(tiddlerElem,tiddlerElem.parentNode.firstChild);
		else if (bottom)
			tiddlerElem.parentNode.insertBefore(tiddlerElem,null);
		else this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
	} else
		this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
	var tiddlerElem=story.getTiddler(title);
	if (tiddlerElem&&opt.chkSinglePageAutoScroll) {
		// scroll to top of page or top of tiddler
		var isTopTiddler=(tiddlerElem.previousSibling==null);
		var yPos=isTopTiddler?0:ensureVisible(tiddlerElem);
		// if animating, defer scroll until after animation completes
		var delay=opt.chkAnimate?config.animDuration+10:0;
		setTimeout("window.scrollTo(0,"+yPos+")",delay); 
	}
}

if (Story.prototype.SPM_coreDisplayTiddlers==undefined)
	Story.prototype.SPM_coreDisplayTiddlers=Story.prototype.displayTiddlers;
Story.prototype.displayTiddlers = function() {
	// suspend single/top/bottom modes when showing multiple tiddlers
	var opt=config.options;
	var saveSPM=opt.chkSinglePageMode; opt.chkSinglePageMode=false;
	var saveTPM=opt.chkTopOfPageMode; opt.chkTopOfPageMode=false;
	var saveBPM=opt.chkBottomOfPageMode; opt.chkBottomOfPageMode=false;
	this.SPM_coreDisplayTiddlers.apply(this,arguments);
	opt.chkBottomOfPageMode=saveBPM;
	opt.chkTopOfPageMode=saveTPM;
	opt.chkSinglePageMode=saveSPM;
}
//}}}
/***
|Name|SinglePageModePluginInfo|
|Source|http://www.TiddlyTools.com/#SinglePageModePlugin|
|Documentation|http://www.TiddlyTools.com/#SinglePageModePluginInfo|
|Version|2.9.6|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|documentation|
|Description|Documentation for SinglePageModePlugin|
Normally, as you click on the links in TiddlyWiki, more and more tiddlers are displayed on the page. The order of this tiddler display depends upon when and where you have clicked. Some people like this non-linear method of reading the document, while others have reported that when many tiddlers have been opened, it can get somewhat confusing.  SinglePageModePlugin allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one item displayed at a time.
!!!!!Usage
<<<
When the plugin is enabled, only one tiddler will be displayed at a time and the browser window's titlebar is updated to include the current tiddler title.  The browser's location URL is also updated with a 'permalink' for the current tiddler so that it is easier to create a browser 'bookmark' for the current tiddler.  Alternatively, even when displaying multiple tiddlers //is// permitted, you can still reduce the potential for confusion by forcing  tiddlers to always open at the top (or bottom) of the page instead of being displayed following the tiddler containing the link that was clicked.
<<<
!!!!!Configuration
<<<
<<option chkSinglePageMode>> Display one tiddler at a time
><<option chkSinglePagePermalink>> Automatically permalink current tiddler
><<option chkSinglePageKeepFoldedTiddlers>> Don't close tiddlers that are folded
><<option chkSinglePageKeepEditedTiddlers>> Don't close tiddlers that are being edited
<<option chkTopOfPageMode>> Open tiddlers at the top of the page
<<option chkBottomOfPageMode>> Open tiddlers at the bottom of the page
<<option chkSinglePageAutoScroll>> Automatically scroll tiddler into view (if needed)

Notes:
* {{block{
The "display one tiddler at a time" option can also be //temporarily// set/reset by including a 'paramifier' in the document URL: {{{#SPM:true}}} or {{{#SPM:false}}}. You can also use {{{SPM:expression}}}, where 'expression' is any javascript statement that evaluates to true or false.  This allows you to create hard-coded links in other documents that can selectively enable/disable the use of this option based on various programmatic conditions, such as the current username. For example, using
&nbsp;&nbsp;&nbsp;{{{#SPM:config.options.txtUserName!="SomeName"}}}
enables 'one tiddler at a time' display for all users //other than// "~SomeName")}}}
* If more than one display mode is selected, 'one at a time' display takes precedence over both 'top' and 'bottom' settings, and if 'one at a time' setting is not used, 'top of page' takes precedence over 'bottom of page'.
* When using Apple's Safari browser, automatically setting the permalink causes an error and is disabled.
<<<
!!!!!Revisions
<<<
2008.10.17 2.9.6 changed chkSinglePageAutoScroll default to false
2008.06.12 2.9.5 corrected 'scroll to top of page' logic in auto-scroll handling
2008.06.11 2.9.4 added chkSinglePageKeepEditedTiddlers option
2008.06.05 2.9.3 in displayTiddler(), bypass single/top/bottom mode handling if startingUp.  Allows multiple tiddlers to be displayed during startup processing (e.g., #story:DefaultTiddlers), even if single/top/bottom mode is enabled.
2008.04.18 2.9.2 in displayTiddler() and checkLastURL(), handling for Unicode in tiddler titles (remove explicit conversion between Unicode and UTF, as this is apparently done automatically by encode/decodeURIComponent, resulting in double-encoding!
2008.04.08 2.9.1 don't automatically add options to AdvancedOptions shadow tiddler
2008.04.02 2.9.0 in displayTiddler(), when single-page mode is in use and a tiddler is being edited, ask for permission to save-and-close that tiddler, instead of just leaving it open.
2008.03.29 2.8.3 in displayTiddler(), get title from tiddler object (if needed).  Fixes errors caused when calling function passes a tiddler *object* instead of a tiddler *title*
2008.03.14 2.8.2 in displayTiddler(), if editing specified tiddler, just move it to top/bottom of story *without* re-rendering (prevents discard of partial edits).
2008.03.06 2.8.1 in paramifier handler, start 'checkURL' timer if chkSinglePageMode is enabled
2008.03.06 2.8.0 added option, {{{config.options.chkSinglePageKeepFoldedTiddlers}}}, so folded tiddlers won't be closed when using single-page mode.  Also, in checkURL(), if hash is a ''permaview'' (e.g., "#foo bar baz"), then display multiple tiddlers rather than attempting to display "foo bar baz" as a single tiddler
2008.03.05 2.7.0 added support for "SPM:" URL paramifier
2008.03.01 2.6.0 in hijack of displayTiddler(), added 'title' argument to closeAllTiddlers() so that target tiddler isn't closed-and-reopened if it was already displayed.  Also, added config.options.chkSinglePageAutoScrolloption to bypass automatic 'scroll into view' logic (note: core still does it's own ensureVisible() handling)
2007.12.22 2.5.3 in checkLastURL(), use decodeURIComponent() instead of decodeURI so that tiddler titles with commas (and/or other punctuation) are correctly handled.
2007.10.26 2.5.2 documentation cleanup
2007.10.08 2.5.1 in displayTiddler(), when using single-page or top-of-page mode, scrollTo(0,0) to ensure that page header is in view.
2007.09.13 2.5.0 for TPM/BPM modes, don't force tiddler to redisplay if already shown.  Allows transition between view/edit or collapsed/view templates, without repositioning displayed tiddler.
2007.09.12 2.4.0 added option to disable automatic permalink feature.  Also, Safari is now excluded from permalinking action to avoid bug where tiddlers don't display after hash is updated.
2007.03.03 2.3.1 fix typo when adding BPM option to AdvancedOptions (prevented checkbox from appearing)
2007.03.03 2.3.0 added support for BottomOfPageMode (BPM) based on request from DaveGarbutt
2007.02.06 2.2.3 in Story.prototype.displayTiddler(), use convertUnicodeToUTF8() for correct I18N string handling when creating URL hash string from tiddler title (based on bug report from BidiX)
2007.01.08 2.2.2 use apply() to invoke hijacked core functions
2006.07.04 2.2.1 in hijack for displayTiddlers(), suspend TPM as well as SPM so that DefaultTiddlers displays in the correct order.
2006.06.01 2.2.0 added chkTopOfPageMode (TPM) handling
2006.02.04 2.1.1 moved global variable declarations to config.* to avoid FireFox 1.5.0.1 crash bug when assigning to globals
2005.12.27 2.1.0 hijack displayTiddlers() so that SPM can be suspended during startup while displaying the DefaultTiddlers (or #hash list).  Also, corrected initialization for undefined SPM flag to "false", so default behavior is to display multiple tiddlers
2005.12.27 2.0.0 Update for TW2.0
2005.11.24 1.1.2 When the back and forward buttons are used, the page now changes to match the URL.  Based on code added by Clint Checketts
2005.10.14 1.1.1 permalink creation now calls encodeTiddlyLink() to handle tiddler titles with spaces in them
2005.10.14 1.1.0 added automatic setting of window title and location bar ('auto-permalink').  feature suggestion by David Dickens.
2005.10.09 1.0.1 combined documentation and code in a single tiddler
2005.08.15 1.0.0 Initial Release
<<<
<<tabs txtMainTab "Timeline" "Timeline" TabTimeline "All" "All tiddlers" TabAll "Tags" "All tags" TabTags "More" "More lists" TabMore>>
research fellow at FIIT STU
Ing. Peter Drahoš, ~PhD.
/*{{{*/

body { text-align:center; background:#fff url(bg_top.png) repeat-x top left; }

#contentWrapper { width:750px; text-align:left; margin-left:auto; margin-right:auto; position:relative; overflow:hidden; clear:both; }

div.header { display:block; height:80px; background-color:[[ColorPalette::Foreground]]; overflow:hidden; clear:both; position:relative; }
div.header div.headerForeground { padding-top:2em; }
div.header div.headerForeground span.siteTitle h1 { position:absolute; margin:0; padding:0; top:10px; left:8px;}
div.header div.headerShadow { display:none; }

#topMenu ul { margin:0; padding:0; list-style:none; width:100%; overflow:hidden; clear:both; }
#topMenu ul li { float:left; margin:0; padding:0; }
#topMenu ul li a { height:18px; vertical-align: middle; text-decoration:none; display:block; float:left; font-size:12px;  font-weight:bold; color:[[ColorPalette::Background]]; margin:0 20px 0 0; padding:5px 8px 5px 8px }
#topMenu ul li a.searchButton { display: none; }
#topMenu ul li a:hover { background-color:[[ColorPalette::MainAccentLight]]; }
#topMenu a.button { float:right; margin:0.8em 0 0 1.5em; color:[[ColorPalette::MainAccentLight]]; border-width:0;}
#topMenu a.button:hover { color:[[ColorPalette::MainAccent]]; background-color:[[ColorPalette::Background]];}

#mainMenu { margin:30px 0 4em 0; padding:0; width:160px;  text-align:left; line-height:1em; overflow:hidden; clear:both; float:left; position: inherit;}
#mainMenu ul { list-style:none; margin:0; padding:0; }
#mainMenu ul li {margin:0; padding:0;}
#mainMenu ul li a.tiddlyLink {margin:0; padding:6px 8px; display:block; text-decoration:none; font-size:1.1em; font-weight:bold; color:[[ColorPalette::Foreground]]; text-align:left; clear:left; }
#mainMenu ul li a.tiddlyLink:hover { color:[[ColorPalette::Background]]; background-color:[[ColorPalette::Foreground]]; }
#mainMenu a.button {margin-left:8px;  color:[[ColorPalette::MainAccentLight]]; border-width:0px; }
#mainMenu a.button:hover { color:[[ColorPalette::MainAccent]]; background-color:[[ColorPalette::Background]];}
#mainMenu input.txtOptionInput {border:solid 1px #ddd; border-top:solid 1px #aaa; border-bottom:solid 1px #eee; margin:4px 0 0 8px; padding:2px 4px; color:[[ColorPalette::LessSubtle]]; background:transparent url(./images/bg_search.png) repeat-x top left;}

#sidebar { top:120px; right:0; overflow:hidden; clear:both;}

#displayArea { float:right; margin:10px 0 4em 10px;}
#tiddlerDisplay { float:left; margin:0; width:750px;}

#footer { margin-top:40px; border-top:solid 1px [[ColorPalette::Subtle]]; padding:20px 0; color:[[ColorPalette::Subtle]];  overflow:hidden; clear:both}
#footer a.button { color:[[ColorPalette::MainAccent]]; border-width:0;}
#footer a.button:hover { color:[[ColorPalette::MainAccentLight]]; background-color:[[ColorPalette::Background]];}

div.tiddler { margin:0em 0 4em 0; padding-top:0em; }
div.tiddler div.title { font-size:2em; margin-left:0; color:[[ColorPalette::MainAccent]];  display:inline;}
div.tiddler div.viewer { font-size:1.3em; margin-left:0px; width:730px;}
div.tiddler div.subtitle { display:none; }
div.tiddler div.toolbar { text-align:left; margin-left:0.5em; display:inline;}
div.tiddler div.toolbar > a.button { color:[[ColorPalette::Subtle]]; border-width:0;}
div.tiddler div.toolbar > a.button:hover { color:[[ColorPalette::LessSubtle]]; background:[[ColorPalette::Background]];}
div.tiddler div.tagged { background-color:[[ColorPalette::Background]]; border-width:0; margin:0 0 2em 0;}
div.tiddler div.tagged ul li.listTitle { display:none; }
div.tiddler div.tagged ul li a { font-size:1em; display:block; border:solid 1px [[ColorPalette::Background]]; margin-bottom:2px; padding:3px 3px 3px 20px; text-decoration:none; background:transparent url(tags_matrix.png) no-repeat top left; color:[[ColorPalette::SecondAccent]]; }
div.tiddler div.tagged ul li a:hover { border-color:[[ColorPalette::SecondAccentLight]]; background:[[ColorPalette::SecondAccentLight]] url(tags_matrix.png) no-repeat 0 -59px; background-position: 0 -59px; color:[[ColorPalette::SecondAccent]];}
div.tiddler div.tagging { float:none; border:solid 1px [[ColorPalette::SubtleLight]]; padding:3px; background-color:[[ColorPalette::SubtleSuperLight]]; overflow:hidden; clear:both; zoom:1;}
div.tiddler div.tagging ul li { float:left; margin:0 1.5em 0 0; color:[[ColorPalette::LessSubtle]]; }
div.tiddler div.tagging ul li a { color:[[ColorPalette::MainAccentLight]]; }
div.tiddler div.tagging ul li a:hover { color:[[ColorPalette::MainAccent]]; background-color:[[ColorPalette::SubtleSuperLight]];}
div.tiddler div.viewer img { float:left; clear:left; margin:0 1em 1em 0;}
div.tiddler table {margin:0; border-width:0px; }
div.tiddler table tr { border-width:0px; }
div.tiddler table tr td { border-width:0px; vertical-align:top; }
div.tiddler table tr td * { float:left; clear:left; }

.viewer pre { font-size:0.85em; }

#popup { border:solid 1px [[ColorPalette::Subtle]]; border-bottom:solid 1px [[ColorPalette::LessSubtle]]; border-right:solid 1px [[ColorPalette::LessSubtle]]; background-color:[[ColorPalette::Background]]; padding:1px 0 0 0;}
#popup li a { background-color:[[ColorPalette::SubtleSuperLight]]; color:[[ColorPalette::MuchLessSubtle]]; text-align:left;}
#popup li a:hover { background-color:[[ColorPalette::SubtleLight]]; color:[[ColorPalette::MuchLessSubtle]];}
#popup li.listBreak div {border-bottom:solid 1px [[ColorPalette::Background]]; border-top:solid 1px [[ColorPalette::SubtleLight]]; margin:0;}

form.wizard {font-size:0.8em;}

h1, h2, h3, h4, h5 { color:[[ColorPalette::MainAccentLight]] }

/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}
body {font-size:.75em; font-family:arial,helvetica; margin:0;
padding:0;}
h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}
hr {height:1px;}
a {text-decoration:none;}
dt {font-weight:bold;}
ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}
.txtOptionInput {width:11em;}
#contentWrapper .chkOptionInput {border:0;}
.externalLink {text-decoration:underline;}
.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}
.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}
/* the 'a' is required for IE, otherwise it renders the whole tiddler
in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}
#mainMenu .tiddlyLinkExisting, #mainMenu .tiddlyLinkNonExisting,
#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal;
font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}
.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0em 1em 1em; left:-1px;
top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em;
left:0px; top:0px;}
.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}
#mainMenu {position:absolute; left:0; width:10em; text-align:right;
line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}
#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0em 0.2em; padding:0.2em 0.3em;
display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em;
font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline;
padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}
.wizard {padding:0.1em 1em 0em 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none;
padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none;
padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0em 0em 0em; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0em;}
.wizardFooter .status {padding:0em 0.4em 0em 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em 0.1em 0.2em;}
#messageArea {position:fixed; top:2em; right:0em; margin:0.5em;
padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em 0.2em
0.2em 0.2em;}
#messageArea a {text-decoration:underline;}
.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em
1em; margin:0;}
.popup {position:absolute; z-index:300; font-size:.9em; padding:0;
list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0;
margin:0.2em 0em;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal;
cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}
.tabset {padding:1em 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}
#contentWrapper {display:block;}
#splashScreen {display:none;}
/*
#displayArea {margin:1em 17em 0em 14em;}
*/
.toolbar {text-align:right; font-size:.9em;}
.tiddler {padding:1em 1em 0em 1em;}
.missing .viewer,.missing .title {font-style:italic;}
.title {font-size:1.6em; font-weight:bold;}
.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}
.tiddler .button {padding:0.2em 0.4em;}
.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}
.footer {font-size:.9em;}
.footer li {display:inline;}
.annotation {padding:0.5em; margin:0.5em;}
* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0em 0.25em; padding:0em 0.25em;}
.viewer blockquote {line-height:1.5em;
padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}
.viewer table, table.twtable {border-collapse:collapse; margin:0.8em
1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th,
.twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px
3px 0px 3px;}
.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em;
line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}
.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%;
font:inherit;}
.editorFooter {padding:0.25em 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}
.fieldsetFix {border:0; padding:0; margin:1px 0px 1px 0px;}
.sparkline {line-height:1em;}
.sparktick {outline:0;}
.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}
* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden;
z-index:150; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em
0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175;
top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em
0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute;
margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute;
width:100%; height:100px;}
.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
chkSinglePageKeepEditedTiddlers: true
chkSinglePageKeepFoldedTiddlers: true
chkSinglePageMode: true
!!!Accounts
If you would like to request access to the ~TESLA01 GPU sever available to all FIIT students please contact me on my email.

!!!Software
The server is running Ubuntu 11.x and has latest nVidia SDK installed and available to all users in {{{/home/SDK}}}
!!!2017
[[Introduction to Interactive Applications Development 2017]]

!!!2016
[[Principles of Computer Graphics and Image Processing 2016]]
[[Introduction to Interactive Applications Development 2016]]

!!!2015
[[Principles of Computer Graphics and Image Processing 2015]]
[[Introduction to Interactive Applications Development 2015]]

!!!2014
[[Principles of Computer Graphics and Image Processing 2014]]
[[Introduction to Interactive Applications Development 2014]]

!!!2013
[[Principles of Computer Graphics and Image Processing 2013]]
[[Introduction to Interactive Applications Development 2013]]

!!!2012
[[Principles of Computer Graphics and Image Processing 2012]]
[[Parallel Programming 2012]]

!!!2011
[[Parallel Programming 2011]]
[[Team Project 2011]]
[[Principles of Computer Engineering]]
Project is not assigned at the moment.
* [[About Me]]
* [[News]]
* [[Research]]
* [[Publications]]
* [[Projects]]
* [[Teaching]]
* [[Other]]
* <<search>>
<<closeAll>><<permaview>><<saveChanges>>
<!--{{{-->
<div class='title' macro='view title'></div>
<div class='toolbar' macro='toolbar closeTiddler
+editTiddler'></div>
<div class='subtitle'><span macro='view modifier
link'></span>, <span macro='view modified
date'></span> (<span macro='message
views.wikified.createdPrompt'></span> <span macro='view
created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->