Na této stránce najdete nabízená rámcová témata semestrálních projektů, bakalářských a diplomových (DP) prací z katedry počítačové grafiky a interakce (alias 13139 či DCGI) uspořádané dle zadavatelů. Pokud Vás zadání zaujme, kontaktujte prosím přímo uvedené osoby. Pokud se spolu domluvíte, následuje podrobné zadání přímo do KOSu. Na seznamu jsou opravdu rámcová témata, která teprve se zadavatelem upřesníte. Velmi často lze proto zadání BP rozšířit na DP a naopak. Nezoufejte, pokud je nějaké téma již zadáno či rezervováno. Kontaktujte školitele, který se zabývá tématem, jež Vás zajímá - často lze zadání upravit, nebo vymyslet další přímo Vám na míru.
Zadání se pravidelně každou hodinu aktualizují podle stavu v KOSu.
Stránka obsahuje pouze volná a rezervovaná témata - zadané práce najdete v KOSu.
Petr Felkel, zástupce vedoucího DCGI pro pedagogiku
[BP]
Sada nástrojů pro řízení modelů světelné instalace LINKY - (Volné)
Na základě poznatků získaných v rámci projektu v předmětu B6B36PRO navrhněte
univerzální softwarový balíček, který poslouží jako základ modelů světelné fasády
Linky FEL ČVUT. Modely mohou být různých velikostí i hardwarového vybavení.
Balíček musí být použitelný na mikrokontrolérech STM32 a platformě Arduino.
V konceptu počítejte s internetovým připojením pro získání informací o aktuálním
stavu světelné instalace. Ke komunikaci s instalací využijte veřejně dostupného
rozhraní LinkyAPI na serveru https://linky.fel.cvut.cz.
Navrhněte více variant implementace HTTPS klienta pro vybranou platformu. Zvolte
nejvhodnější variantu z hlediska náročnosti na operační paměť a implementujte ji.
Definujte rozhraní, které bude balíček poskytovat a zdokumentujte ho.
Vlastnosti návrhu ověřte implementací zvolené varianty a zhodnoťte případné
nedostatky a případná rizika použití balíčku. Navrhněte a zdůvodněte sadu
testovacích scénářů a následně po jejich realizaci zhodnoťte dosažené výsledky.
[BP]
Sada zvukových nástrojů - (Volné)
Prozkoumejte možnosti programování platformy Raspberry Pi v oblasti zpracování a interpretace zvukového signálu a na základě výsledků z předchozích semestrálních projektů navrhněte sadu generátorů a filtrů přijímajících povely a parametry, pro generování a modifikaci zvukových signálů na této platformě. Dále navrhněte a implementujte aplikaci pro OS Android, která reprezentuje funkční uživatelské rozhraní ovládající navržený řetězec generátorů na Raspberry Pi. Vytvořte alespoň 5 filtrů, kde každý filtr nebo generátor bude reprezentovat jeden efekt. Postup návrhu a implementace v pravidelných intervalech konzultujte s vedoucím práce a v textu práce zdokumentujte, případně zdůvodněte, postup návrhu a všechny kroky jeho realizace. Výstup práce otestujte na vhodném výběru uživatelů.
[BP]
Metody pro odhadování zobrazovacího času 3D scén - není aktuální - (Volné)
Prostudujte metody pro odhadování zobrazovacího času 3D scén a související výpočetní modely grafických karet (GPU). Vybranou metodu implementujte a otestujte její chování na různých typech scén a různém hardwaru. S využitím OpenGL implementujte sadu metod pro kalibraci zvoleného modelu GPU. Sumarizujte měření pro nejméně čtyři vybrané hardwarové konfigurace.
[DP]
Parametrické modely vegetace - není aktuální - (Volné)
Prostudujte existující metody pro vytváření realistických modelů vegetace. Vytvořte nástroj umožňující generování 3D modelu konkrétního vegetačního prvku (stromu, keře, traviny, byliny) na základě charakterických parametrů jako je rod, druh, stáří, výčetní tlouštka, výška, šířka koruny. Výsledný model bude zohledňovat rovněž roční období.
[DP]
Diferenciální instatní radiosita pro rozšířenou realitu - (Volné)
Prostudujte a implementujte metodu diferenciální instantní radiosity pro aplikace v rozšířené realitě. Implementaci důkladně otestujte ve virtuálním prostředí a po dohodě s vedoucím práce proveďte jednoduchý test v rozšířené realitě pro vložení virtuálního objektu do reálného prostředí.
[DP]
Optimalizace hierarchie obálek pro dynamické scény - (Volné)
Prostudujte existující metody optimalizace hierarchií obálek pro dynamické scény. Zaměřte se na metody využívající explicitní znalost o změnách ve scéně způsobené animací. Vhodnou metodu optimalizace hierarchie obálek implementujte s využitím paralelního zpracování v rámci více vláken na CPU. Výslednou implementaci důkladně otestujte a analyzujte na několika scénách a animacích.
[DP]
Simulace jízdy vozidla - (Volné)
Nastudujte stávající implementaci simulátoru jízdy vozidla, která využívá knihovnu ODE (Open Dynamics Engine). Navrhněte a implementujte metodiku pro kalibraci fyzikálního modelu na základě dat získaných měřením dynamických vlastností reálného vozidla. Proveďte srovnání jízdních vlastností simulovaného a reálného vozidla.
[DP]
Simulace kamer a sensorů pro rozšířenou realitu - (Volné)
Prostudujte existující modely pro popis reálných kamer jak z hlediska popisu geometrie jejich optiky tak fotometrických vlastností snímače. Rozšiřte stávající software pro realistické zobrazování virtuálních scén o generování obrázků využívající tyto modely reálných kamer. Zároveň vytvořte jendoduchý model jiných snímačů použitelných v kontextu rozšířené reality jako je kamera použitá v Microsoft Kinect poskytující hloubkovou informaci o scéně.
[DP]
Hybridní hierarchie obálek - (Volné)
Prostudujte existující metody pro stavbu hierarchií obálek pro různá obalová tělesa. Implementujte metodu pro stavbu hybridní hierarchie obálek, kde typ obálky pro daný uzel hierarchie bude optimalizován vzhledem k využití hiearrchie pro metodu sledování paprsku. Pro tuto hybridní hieararchii implementujte rovněž algoritmus sledování paprsku a využijte ho pro vyhodnocení efektivity výsledných hierarchií.
[DP]
Diferenciálmí instatní radiozita - (Volné)
Prostudujte metody diferenciáního renderingu se zaměřením na metodu instatní radiozity. Implementujte metodu diferenciální instantní radiosity pro získání změn obrazu po vložení objektu do scény. Metodu důkladně otestujte v závislosti na jejích parametrech.
[BP]
Webový portál pro srovnávání kvality hierarchií obálek - (Volné)
Vytvořte webovou aplikaci, která umožní srovnávání hierarchií obálek (BVH) a souvisejících konstrukčních algoritmů pro několik vybraných scén. Součástí práce bude specifikace jednoduchého formátu pro popis BVH, včetně parametrů důležitých pro popis algoritmu, kterým byla daná hierarchie postavena (algoritmy konstrukce BVH nejsou součástí práce). Portál umožní uživatelům nahrát data v tomto formátu a provede ověření funkčnosti BVH, tím, že jej použije pro syntézu obrazu pomocí vybrané existující knihovny (PBRT nebo Embree). Portál umožní srovnávat BVH a související konstrukční algoritmy podle různých kriterií (čas pro stavbu BVH, čas syntézy obrazu, paměťová náročnost). Cílem práce je vytvoření prakticky použitelné světové unikátní platformy pro srovnávání BVH a jejich konstrukčních algoritmů.
[DP]
Výpočet kaustik v reálném čase pro Furry Ball - (Volné)
Prostudujte metody vhodné pro efektivní výpočet kaustik v reálném čase. Vybranou metodu implementujte v rámci existujícího softwaru Furry Ball založeném na DirectX. Implemetaci ověřte na sadě nejméně pěti testovacích scén a vyhodnoťte její efektivitu.
[BP]
Modelování objemových dat v rozšířené virtuální realitě - (Volné)
Prostudujte existující systém pro rozšířenou virtuální realitu ZORA a objemový modelář Myslbek, který umožňuje interaktivní tvorbu objemových dat s využitím světelného pera. Propojte tyto dva systémy do jednoho funkčního celku a implementuje uživatelské rozhraní, které přiblíží možnosti celého systému laickému uživateli.
[DP]
Dekompozice 3D objektů na téměř konvexní části - (Volné)
Seznamte se s algoritmem pro dekompozici 3D objektů na téměř konvexní části [1] a implementuje tento algoritmus v jazyce Java. Výsledný algoritmus integrujte do knihovny pro vykreslování 3D geometrie, kterou dodá vedoucí práce. Dále proveďte modifikaci algoritmu tak, aby umožňoval detekci dutin v 3D modelech reprezentovaných jako 3D sítě a umožňoval výpočet kostry těchto dutin.
[DP]
Rozvoj nástroje na výuku transformací - nové moduly - (Volné)
Seznamte se s interaktivním nástrojem na výuku transformací, který je vyvíjen na katedře počítačové grafiky a interakce.
Prozkoumejte způsoby programování interaktivních nástrojů pro grafické programování. Zaměřte se na způsoby, jak jednoduše popisovat nové moduly.
Navrhněte a implementujte rozšíření stávající aplikace, které umožní rozšiřovat funkcionalitu přidáváním nových funkčních bloků bez nutnosti rekompilace zdrojových kódů. Nové funkční bloky budou popsány textovým formátem. Aplikace text načte a na jeho základě nové bloky vytvoří.
Textový popis bude možné též přeložit do zdrojových kódů a slinkovat se stávající aplikací.
Zvolené řešení by mělo být funkční minimálně na platformách Windows a Linux.
Zhodnoťte dosaženou kvalitu implementace z pohledu Softwarového inženýrství a otestujte funkčnost aplikace.
[DP]
Testování užitečnosti nástroje pro výuku transformací - (Volné)
Seznamte se s grafickým interaktivním nástrojem na výuku transformací, který je vyvíjen na katedře počítačové grafiky a interakce.
Prostudujte a shrňte metody pro testování, jaký vliv na získané znalosti má použití nástroje při studiu a porovnejte je se získanými znalostmi získanými klasickými metodami (kniha, přednáška, cvičení).
Zaměřte se výuku práce s maticemi v oblasti počítačové grafiky, nebo lineární algebry.
[DP]
Vizualizace výpočetně chemických dat - (Volné)
Prostudujte vizualizační metody pro zobrazování extrémních a iso-hodnot ve vícerozměrných skalárních polích dat. Zvolte metodu vhodnou pro zobrazování situace v okolí maxim v 6D objemu skalárních hodnot (pozice x,y,z a rotace rx, ry, rz) implementujte ji. Dále navrhněte metodu, která využije tvar a vzájemnou polohu molekul a překrývajících se orbitálů a implementujte ji. Obě metody ověřte na zadaném 6D objemu a zadané sadě maxim a porovnejte je.
[BP]
Interaktivní lupa - (Volné)
Prostudujte metody pro implementaci interaktivní lupy [1] vhodné pro usnadnění orientace v síti propojených modulů a pro selektivní zvětšení vybraného modulu při editaci parametrů.
Vybrané dvě metody implementujte (v C++) v Interaktivním nástroji pro výuku transformací (I3T). Analyzujte způsoby, jak vizualizovat i propojení k ostatním modulům tak, aby se příliš neměnilo uspořádání mapy, ale aby se např. zvětšily a přiblížily moduly, se kterými je modul spojen. Uživatelskými testy otestujte, zda je pro uživatele vhodnější zobrazit všechny zapojené moduly, nebo zvlášť vstupy a výstupy (jako v Excelu). Implementaci ověřte sérií uživatelských testů, v nichž budou participanti řešit typické úkoly.
Oponent Sloup
[BP]
Podpůrné metody interakce pro nástroj na výuku transformací I3T - (Volné)
Seznamte se s metodami navádění uživatele v uživatelském rozhraní.
Pro interaktivní nástroj na výuku transformací (I3T) navrhněte X metod pro navádění uživatele. Rozlišujte metody použitelné jako podpora či nápověda:
a) při seznamování s uživatelským rozhraním (kde najdu ovládací prvek pro konkrétní úkol,...),
b) při používání nástroje (nabídka modulů, zvýraznění použitelných modulů a jejich vstupů k zapojení výstupu z modulu,...) a
c) při provádění konkrétního úkolu z tutoriálu (nabídka vhodných modulů, zvýraznění aktuálního modulu (zvětšení, zvýraznění, potlačení ostatních,...).
Navržené metody implementujte jako prototyp a pak v nástroji I3T (nebo přímo v I3T) a ověřte jejich použitelnost uživatelskými testy. Porovnejte rychlost provedení úkolu s podporou a bez ní.
[BP]
Restrukturalizace interaktivního nástroje na výuku transformací I3T a reimplementace grafického rozhraní pomocí knihovny Dear ImGui - (Volné)
Seznamte se s vývojem Interaktivního nástroje na výuku transformací (I3T) [1] a prací M. Folty a M. Nechanského [2, 3]. Navrhněte novou architekturu aplikace tak, aby kód logiky aplikace (propojení modulů a výpočty hodnot) byl oddělen od kódu uživatelského rozhraní. Zdokonalte a zpřehledněte zpracování událostí a konfigurovatelnost menu a klávesových zkratek. Přizpůsobte návrh potřebám knihovny Dear ImGui [4], která bude použita pro tvorbu elementů uživatelského rozhraní nástroje. Navrhněte a implementujte uživatelsky přívětivé nastavení stylů a implementujte návrh GUI dle studie Víta Zadiny [5] a grafického návrhu Lukáše Pilky [6]. Základní funkcionality nástroje (logiku aplikace) otestujte pomocí jednotkových testů.
[DP]
Adaptivní učení v softwarovém nástroji I3T pro výuku geometrických - (Volné)
Interaktivní nástroj na výuku transformací (I3T) obsahuje řadu úloh. Obsahuje také
doplněk pro zachytávání uživatelských akcí - logger.
Vytvořte doplněk, který bude zpracovávat data získaná loggerem u aktuálního
uživatele a od předchozích uživatelů. Na základě těchto dat bude doplněk navrhovat
aktuálnímu uživateli pro něj nejvhodnější úlohy, které mu program I3T nabízí.
Proveďte rešerši aktuálních metod, algoritmů a přístupů, které se pro tyto účely
využívají, a na základě výsledku rešerše navrhněte a implementujte vhodnou metodu
pro nástroj I3T.
Výsledkem doplňku by měla být efektivnější práce studentů s nástrojem I3T - student
se učí nové dovednosti a znalosti rychleji, než při procházení úloh dle svého uvážení,
nebo procházením na základě pevně stanoveného průchodu.
Ověřte tuto hypotézu na třech skupinách studentů: První používá doplněk I3T, druhá
volí úlohy dle svého uvážení, třetí se drží pevně stanoveného pořadí úloh.
[BP]
Restrukturalizace interaktivního nástroje na výuku transformací I3T a eimplementace grafického rozhraní pomocí knihovny Dear ImGui - (Volné)
Seznamte se s vývojem Interaktivního nástroje na výuku transformací (I3T) [1] a prací
M. Folty a M. Nechanského [2, 3]. Navrhněte novou architekturu aplikace tak, aby kód
logiky aplikace (propojení modulů a výpočty hodnot) byl oddělen od kódu
uživatelského rozhraní. Zdokonalte a zpřehledněte zpracování událostí a
konfigurovatelnost menu a klávesových zkratek. Přizpůsobte návrh potřebám
knihovny Dear ImGui [4], která bude použita pro tvorbu elementů uživatelského
rozhraní nástroje. Navrhněte a implementujte uživatelsky přívětivé nastavení stylů a
implementujte návrh GUI dle studie Víta Zadiny [5] a grafického návrhu Lukáše Pilky
[6]. Základní funkcionality nástroje (logiku aplikace) otestujte pomocí jednotkových
testů.
-
[DP]
Ověřování přesnosti algoritmů pro globální osvětlování - (Volné)
Prostudujte si metody pro ověřování výpočtu globálního osvětlení. Připravte sadu scén v otevřeném formátu, datových souborů, skriptů či jiných programů pro realizaci ověřování algoritmů výpočtu globálního osvětlení, aby ji bylo možno použít pro ověření software pro výpočet globálního osvětlení. Po dohodě s vedoucím práce vyberte software pro ověření globálního osvětlení, například systém z knihy PBRT (Physically Based Rendering Toolkit), a proveďte výpočet chyb, které daný software dosahuje.
[DP]
Metody pro vrhání paprsku s hierarchiemi obálek - (Volné)
Prostudujte literaturu pro existující metody pro stavbu hierarchie obálek (BVH) pomocí metod zeshora dolů, zespoda nahoru, vkládáním a různé globální optimalizace pro zlepšení vlastností hierarchií. Vybrané metody po dohodě s vedoucím práce implementujte na CPU v jazyku C++ a ověřte správnost algoritmu pomocí vhodných metrik, vizualizace datových struktur a metody vrhání paprsku. Metody otestujte na sadě alespoň patnácti různých scén různé velikosti a charakteru scény.
Po dohodě s vedoucím práce vybrané metody implementujte na GPU v jazyku CUDA popřípadě v OpenCL.
Testovací data dodá zadavatel práce.
[DP]
Stavba datových struktur pro sledování paprsku na grafickém akcelerátoru - (Volné)
Nastudujte literaturu ke stavbě datových struktur na grafické kartě pro metodu sledování paprsku se zaměřením na paralelizaci výpočtu. Implementujte tyto metody pro kd-strom a hierarchii obálek (BVH), optimalizujte tyto metody z hlediska rychlosti výpočtu a použité paměti. Pro implementaci použijte jazyk CUDA firmy NVidia a jazyk popsaný standardem OpenCL. Výsledné implementace porovnejte pro sadu testovacích scén pro rekurzivní metodu sledování paprsku.
[DP]
Dynamické datové struktury pro vrhání paprsku v animovaných scénach - (Volné)
Prostudujte literaturu pro existující metody pro animované scény, které jsou vhodné pro animované scény bez znalosti pohybu objektů ve scéně s důrazem na ty metody, které aktualizují již postavenou datovou strukturu a hierarchii obálek. Vybrané metody implementujte na CPU v jazyku C++ a ověřte správnost algoritmu pomocí vhodných metrik a vizualizace datových struktur. Metody otestujte na sadě alespoň šesti animovaných scén.
Po dohodě s vedoucím práce vybrané metody implementujte na GPU v jazyku CUDA popřípadě v OpenCL.
Data animovaných scén dodá zadavatel práce.
[DP]
Parametrizace textury třírozměrných modelů - (Volné)
Prostudujte metody pro parametrizaci souřadnic textur pro libovolné modely. Po dohodě s vedoucím práce vybrané alespoň čtyři metody implementuje v jazyku ANSI C++ s tím, že vstupem algoritmu bude trojúhelníková síť ve formátu Wavefront OBJ a výstupem bude rovněž soubor v tomto formátu se souřadnicemi textur pro každý vrchol vstupní trojúhelníkové sítě. Program bude obsahovat i jednoduchý prohlížeč modelu s texturou podle spočítané parametrizace, kde na modelu bude případně možné zadávat vstupní hodnoty pro vybrané algoritmy.
Vybrané a implementované algoritmy otestujte alespoň na deseti geometrických modelech jednotlivých objektů a složitějších scén.
[DP]
Optimalizační algoritmy pro parametrické modelování odrazivosti - (Volné)
Nastudujte optimalizační metody minimalizace funkce pro analytického BRDF modelu jako nástroje pro modelování naměřených dat. Implementujte software v C++ pro takovou optimalizaci pro různá kritéria výsledné chyby a BRDF modely v knihovně BRDFLIB. Jako BRDF data použijte databáze firmy MERL se 100 materiály. Spočítejte chybu pro parametrický model pro nafitovaná data, výsledné obrázky a chyby vizualizujte na objektu.
Nutná dobrá znalost C++ a anglického jazyka.
[BP]
Fotogalerie s generátorem webstránek - (Volné)
Analyzujte dostupné programy pro správu digitálních snímků se zaměřením na takové, které umožňují export do webových stránek ve formě fotoalba. Programy mezi sebou porovnejte z hlediska uživatelského a užitných vlastností.
Dále navrhněte a implementujte multiplatformní aplikaci v jazyku C++ pro správu fotografií s použitím knihovny QT. Musí podle pokynů zadavatele umožňovat import fotografií z adresářů, jednoduchou editace (rotaci a výmaz, případně zvýšení jasu a kontrastu), anotaci textem a export do formátu HTML 4.01 strict. Případně volitelně do vyšší verze (XHTML). Aplikace bude umožňovat modifikaci vzhledu vytvářených stránek, velikost anotačního textu, velikost fotografie, data, pozadí atd. a vytvářet indexační stránku s orientačními obrázky atd.
Aplikaci otestujte s použitím uživatelského testování alespoň tří osob, na základě zpětné vazby aplikaci vylepšete a znovu proveďte testování použitelnosti. Vytvořte ukázkové galerie a program umístěte do repozitáře sourceforge.
[DP]
Efektivní datové struktury pro sledování paprsku - (Volné)
Nastudujte efektivní metody pro sledování paprsku na CPU a GPU. Podle pokynu vedoucího práce implementujte nové metody se zaměřením na rychlou stavbu a rychlost vrhání paprsku. Práce vyžaduje vynikající znalost C++ a pokud možno i prostředí CUDA a OpenCL.
[DP]
Parametrizace modelu MPII budovy pro texturování - (Volné)
Nastudujte problematiku 2D parametrizace textur třídimenzionálních objektů a rozsáhlých scén. Pro konkrétní rozsáhlou scénu 'MPII Building Model Dataset' navrhněte efektivní postup pro doplnění parametrizace textur celého modelu pro všechny povrchy modelu s využitím nedávných článků dostupných s realizovaným software. Tento postup realizujte pro celý model a verifikujte na správnost pro vizualizaci různých textur pro jednotlivé druhy materiálů povrchů v modelu.
Převeďte dat do třech formátu: PBRT, Mitsuba a Wavefront OBJ. Vyrendrujte obrázky v systému PBRT a Mitsuba a porovnejte je s fotografiemi.
Dobrá znalost anglického jazyka nutná. Znalost modelování v 3D Studiu MAX výhodou.
[BP]
Parametrizace povrchu modelu MPII budovy pro texturování - (Volné)
Nastudujte problematiku 2D parametrizace textur třídimenzionálních objektů a rozsáhlých scén. Pro konkrétní rozsáhlou scénu "MPII Building Model Data" navrhněte efektivní postup pro doplnění parametrizace textur celého modelu pro všechny povrchy modelu. Tento postup realizujte pro celý model a verifikujte na správnost pro vizualizaci různých textur pro jednotlivé druhy materiálů povrchů v modelu.
Dobrá znalost anglického jazyka nutná. Znalost modelování v 3D Studiu MAX výhodou.
[DP]
Optimalizace umístění kamer pro sledování objektů - (Volné)
Prostudujte problém vícerozměrného pokrytí prostoru pomocí pohledových jehlanů kamer pro sledování objektů ve virtuální realitě (angl. tracking). Navrhněte a implementujte optimalizační algoritmus, který vzhledem k funkci důležitosti zadané uživatelem navrhne takové rozmístění kamer v prostoru na omezeném prostoru tak, aby užitné vlastnosti systému pro trackování byly maximalizovány, tedy každý bod v zadaném prostoru pro trackování je viděn z co největšího počtu kamer popřípadě s omezením na minimum alespoň M kamer. V modelu uvažujte i případné zastínění sledovaných bodů uživatelem směrovou funkcí.
Systém implementujte a otestujte na systému pro tracking v laboratoři VRLAB pro 3 až 6 kamer systému Optitrack na obdélníkovém rámu. Výsledky z optimalizačního algoritmu prakticky vyzkoušejte na tomto prostoru. Porovnejte výsledky optimalizace s naivním řešením bez optimalizace.
[BP]
Fotografický přístroj z kamery pro počítačové vidění - (Volné)
Pro kameru určenou pro počítačové vidění firmy SVISTEK SHR411-CXGE s chipem 14192 x 10640 pixelů navrhněte zapojení elektroniky s vestavěným počítačem a vhodným způsobem ovládání tak aby výsledná kombinace hardware a software byla použitelná jako fotografický přístroj. Fotografický přístroj musí umožňovat nastavení délku expozice, mít nahledový displej velikosti alespoň 3.5 palců, musí umožnit pomocí univerzální desky připojení velkoformátových objektivů různé ohniskové délky. Napájení může být vnitřní tak i vnější. Využijte platformu RASPBERRY PI 4 či jinou vhodnou platformu po dohodě s vedoucím práce.
Zdroj pro provoz přístroje může být buď externí nebo lépe externí i interní formou akumulátoru LIFEPO. Tělo fotografického přístroje bude navženo jako 3D model pro výrobu na 3D tiskárně.
Navržený fotografický přístroj vyprodukujte v prototypu s využitím 3D tiskárny, vyzkoušejte nejméně na nezávislých třech uživatelích, navrhněte změny a produkujte druhý finální prototyp.
[DP]
Optimalizace zpracování obrazových BTF dat z měření pro syntézu obrazu - (Volné)
Nastudujte si problematiku pro zpracování obrazových dat zahrnujících jejich rektifikaci pomocí homografií s využitím homogenních souřadnicí včetně přípravy matic homografie. Navrhněte přístupy pro zrychlení zpracování rozsáhlých obrazových dat reprezentujících pořízených světelným bubnem. Vybrané přístupy implementujte, testujte a vyhodnoťte zrychlení.
Znalost efektivního programování v ANSI C++ a na grafických kartách v CUDA. Dobrá znalost angličtiny je nezbytná.
[DP]
Simulace míchání pigmentů barev - (Volné)
Nastudujte metody pro míchání barev obsahujících pigmenty. Navrhněte a realizujte metodu míchání dvou nebo tří barev na fyzické malířské paletě fyzickým nástrojem typu malířské hrabičky, aby co nejvěrněji odpovídala realitě s využitím volumetrických dat a teorie skládání pigmentů. Metodu implementujte a spočtěte obrázky a následně video simulující míchaní barev na malířské paletě.
Dobrá znalost matematiky, jazyka C++ a angličtiny je nezbytná, metod syntézy obrazu (předmět RSO) je žádoucí.
[BP]
Postup výroby prototypových plošných spojů s využitím CNC frézky - (Volné)
Seznamte se s CNC frézkou Kompas H400GS firmy CauCau, základním způsobem použití pro výrobu. Proveďte rešerší na téma výroby jednostranných a oboustranných plošných spojů s využitím této CNC frézky pro datový formát popisu plošného spoje GERBER.
Vybrané postupy z rešerše po konzultaci s vedoucím práce vyzkoušejte a porovnejte kvalitu a čas výroby různých postupů výroby prototypových plošných spojů minimálně třech různých plošných spojů o různé složitosti a minimální velikosti 100x100mm, s tím, že prototyp každého plošného spoje produkujete minimálně pětkrát. Při vyhodnocení kvality postupu se zaměřte na slícování horní a dolní vrstvy plošného spoje, kvalitu hran plošných spojů podle úrovně detailu plošného spoje.
Nejlepší postupy pro výrobu jednovrstvého a dvouvrstvého plošného spoje popište detailně v manuálu popisujícím krok za krokem výrobu prototypu plošného spoje, uveďte přesnou obrazovou a jinou dokumentaci postupu, popište detailně možná úskalí a výhody či možná rizika metody. Kvalitu sepsaného manuálu ohodnottě na minimálně třech třech testovaných osobách. Manuál na základě zpětné vazby od uživatelů zlepšete a zveřejněte formou HTML stránek a PDF dokumentu v českém jazyce anebo v českém a anglickém jazyce.
Součástí manuálu bude i rejstřík termínů s obrázky a uvedením a vysvětlením termínů.
Znalost problematiky plošných spojů, jejich výroby a CNC frézování výhodou. Nutnost častého působení na Karlově náměstí v hardwarové dílně.
[BP]
Měření povrchu BRDF s využitím LIGHTEC Minidiff V2 pro využití v programování her - (Volné)
Seznamte se s měřícím přístrojem Lighttec Mini Diff V2 pro měření isotropní odrazivosti povrchu a naučte se jej používat, data měřit a exportovat do stávajících formátů. Nastudujte si problematiku užití BRDF formou tzv. shaderů v programových prostředích pro psaní počítačových her a to nejméně v UNITY a UnrealEngine. Najděte způsob vyžití naměřených dat prostorové odrazivosti v uvedených programových prostředích pro nastavení vzhledu povrchu a to buď s využitím přímé cesty nebo konverze z dostupných datových formátů přístroje do vhodných datových formátů v programových prostředích her.
Změřte nejméně 200 různých povrchů, fyzické vzorky dodá vedoucí práce. Na vhodných demonstračních 3D tvarech demostrujte funkčnost použití měřených dat, vytvořte krátká videa se zobrazením. Porovnejte rychlost zobrazení programových prostředích pro psaní počítačových her s měřenými daty a jednoduchými analytickými modely typu Phong.
Znalost C++ a základů počítačové grafiky nezbytná. Podmínkou je absolvování alespoň souběžně s předmětem Počítačové hry.
[DP]
Robotický malíř - zakladní programové prostředí pro robotické kreslení a malování - (Volné)
Seznamte se se základními technikami kresby a malby užívanými v dnešních letech pomocí štětce a tužky s měkkou tuhou či jinými technikami s využitím tuhé tužky (pastelky, fixy atd.). Připravte rešerší současného stavu robotického malování pomocí 6D robotů, nikoliv standardních plotrů či robotů typu SCARA.
Navrhněte fyzické uspořádání prostředů a následně programové rozhraní pro ovládání přesného robota MECADEMIC MECA500 tak, aby umožnoval přenášení zadaných tahů na fyzické médium (plátno, papír), míchání a celkou přípravu barvy na paletě ze základních temperových barev či olejových barev z tuby eventuelně i jiným vhodným způsobem.
Navržené hardwarové prostředí realizujte a otestujte pro alespoň 5 různých obrazů ze zadané předlohy.
Slušná znalost angličtiny, ochota učit se nové věci, pozitivní vztah k umění a obvzláště malířské tvorbě, pokud možno vlastní zkušenost v malířské tvorbě nad rámec základní školy. Dobrá znalost C++. Znalosti základů robotiky nejsou podmínkou.
[BP]
Trojrozměrné modelování ve virtuální realitě - (Rezervováno)
Design and implement a simple virtual sculpting system that will support the Oculus Rift head-mounted display.
Use the 6-DOF hand tracker Razer Hydra as the input controller.
Employ an adaptively refined triangle mesh [1,2] for the representation of the sculpted clay surface.
The system will facilitate the sculpting using four tools that will remove the clay, add the clay, drag the surface, and smooth the surface.
Implement the system in C++ using the OpenGL API.
Use the vendor-supplied APIs [3,4] for interfacing with the display and the controller.
[DP]
Heraldická vizualizace - (Volné)
Nastudujte z dostupných zdrojů pravidla heraldického popisu - blazonu.
Navrhněte formální jazyk, který bude přijímat co největší podmnožinu z volně dostupných heraldických popisů a vytvořte parser, který bude tyto popisy zpracovávat do vhodné vnitřní reprezentace, která bude exportovatelná a importovatelná.
Na základě této vnitřní reprezentace vytvořte program, který erb vhodným způsobem vykreslí. Výsledky porovnejte s manuálně vytvořenými z dostupných zdrojů.
[DP]
Generování obrazových dat s variací z příkladů - (Volné)
Prozkoumejte existující metody generování obrazových dat s variací z příkladů. Implementujte metody vybrané vedoucím a porovnejte jejich fungování na vstupních množinách s různými charakteristikami. Zejména prozkoumejte jejich chování nad obrazovými reprezentacemi přírodních a strukturovaných objektů, chování při silné tvarové variabilitě modelů a chování pod barevnými variacemi.
[BP]
Navigační systém pro hendikepované uživatele - (Rezervováno)
Analyse current approaches for indoor navigation of handicapped users, focus of visually impaired, people using wheelchair and seniors. Perform a detailed user study of target user groups. Follow the user-centered design methodology. Specify requirements for an indoor navigation system suiting needs and preferences of the target user groups. Specify user profiles using personas technique. Design low-fidelity and high-fidelity prototypes of the navigation system user interface. Test the user interface prototypes using the target user groups. Provide suggestions for fixing found issues.
[DP]
Replikovatelné BLOB úložiště v distribuovaném prostředí - (Volné)
Nastudujte důsledně články popisující existující BLOB storage systémy.
Analyzujte možnosti replikace dat uložených do BLOB storage. Navrhněte
BLOB storage systém Implementujte BLOB storage systém, který bude
využívat distribuce dat mezi jednotlivé služby. Pro systém implementujte
jednoduché webové grafické rozhraní informunjící o základních metrikách
systému (zdraví, orientační stav replikace apod.)
[DP]
Detekce anomálního chování distribuovaných webových služeb - (Volné)
Nastudujte důsledně předchozí diplomovou práci pana Bc. Adama Lysáka.
Pro hodnoty z jednotlivých metrik analyzujte možnosti detekce anomálií v
chování jednotlivých služeb / počítačů. Navrhněte a implementujte systém
detekce anomálií pomocí techniky decision trees. Analyzujte a navrhněte
systém pro asistovanou automatizovanou detekci anomálií v chování
jednolivých služeb. Pro systém navrhněte webové GUI v technologii
ASP.NET, které bude umožňovat správu detekčních mechanizmů systému.
[DP]
Vyhledávání nad kryptovanými datyanglicky: Search on Encrypted Data - (Volné)
Nastudujte důsledně doporučené články. Analyzujte možnosti popsaných algoritmů nad architekturou Klient-Server. Na základě popsaných algoritmů implementujte knihovnu pro kryptování dat klientské straně při zachování možnosti jednoduchého prohledávání kryptovaných dat na serverové straně. Algoritmus implementujte v režimu proof-of-concept. Implementovaný algoritmus otestujte nad textovými daty.
[BP]
Virtuální piano - (Volné)
S využitím leap motion technologie implementujte hraní na virtuální piano. Předpokládejte, že uživatel bude sedět u reálného stolu a na něj bude hrát. Vytovřte alespoň dvě různé VR místnosti ve kterých bude uživatel hrát, zvažte možnost vlivu místnosti/nástroje na výsledný zvuk.
-
[DP]
Vizualizace 3D dat na širokoúhlé projekci - (Volné)
přibližné téma:
V Institutu plánování a rozvoje Prahy (IPR) byla vytvořena nová širokoúhlá projekce (4 x FullHD vedle sebe). IPR disponuje různými 3D daty a chtěl by je na této stěně vizualizovat (například postup vody při záplavách, úrovně znečištění...).
Téma je volnější a bude záležet na studentovi, kterou problematiku by chtěl vizualizovat a jak.
-
-
[DP]
Zamrzání vodních ploch - (Volné)
Seznamte se s články [1-2] a na jejich základě navrhněte a implementujte aplikaci, která bude simulovat zamrzání vodních ploch a jejich opětovné tání.
Do simulace zahrňte proudění vody, výměnu tepla s okolím, sluneční záření a povětrnostní podmínky.
Pro vizualizaci použijte jednoduchou metodu, která umožní zobrazit rozložení tepla ve scéně, množství ledu a proudění.
Součástí aplikace bude přehledné uživatelské rozhraní umožňující měnit jednotlivé simulační parametry (např. denní doba, množství sněhových a dešťových srážek nebo velikost simulační mřížky).
Funkčnost implementované metody oveřte alespoň na třech scénách různé komplexnosti.
Implementaci proveďte v C/C++ s využítím OpenGL.
[DP]
Porovnání metod vykreslování textu - (Volné)
Seznamte se s existujícími metodami vykreslování textu a proveďte jejich rešerši. Implementujte vybrané metody (minimálně [1-6], některé z uvedených metod jsou dostupné jako hotové řešení ve formě knihoven) a proveďte jejich rychlostní porovnání (rychlost vykreslování, složitost a rychlost předzpracování, paměťová složitost) jak na desktopu (Windows/Linux), tak i na mobilních platformách (android).
Dále proveďte testování přesnosti vykreslování implementovaných metod a jejich schopnosti výpočtu vzdálenosti od kontury (signed distance field) vykreslovaných znaků, což je důležité pro vizuální efekty (např. thickness adjustement, outline, soft shadow, atd.).
Implementaci proveďte v C/C++ s využitím grafické knihovny OpenGL.
[BP]
Rozhraní pro knihovnu GridCut v MATLABu - (Volné)
Seznamte se knihovnou GridCut [1] pro efektivní výpočet maximálního toku v sítích s topologií pravidelné mřížky. Navrhněte a realizujte programátorské rozhraní, které umožní běžnému uživateli MATLABu provádět výpočty pomocí knihovny GridCut. Vytvořte jednoduchou programátorskou dokumentaci a sadu ukázkových úloh, které budou sloužit jako příklad použití.
[BP]
Integrace knihovny GridCut do optimalizačního nástroje GCO - (Volné)
Seznamte se nástrojem GCO [1] pro diskrétní optimalizaci a knihovnou GridCut [2] pro efektivní výpočet maximálního toku v sítích s topologií pravidelné mřížky. Realizujte programátorské rozhraní, které umožní navázat GCO na knihovnu GridCut. Vytvořte jednoduchou programátorskou dokumentaci a sadu ukázkových úloh, které budou sloužit jako příklad použití.
[DP]
Integrace knihovny GridCut do optimalizačního nástroje LSA-TR - (Volné)
Seznamte se nástrojem LSA-TR [1] pro optimalizaci binárních párových energii a knihovnou GridCut [2] pro efektivní výpočet maximálního toku v sítích s topologií pravidelné mřížky. Realizujte programátorské rozhraní, které umožní navázat LSA-TR na knihovnu GridCut. Vytvořte jednoduchou programátorskou dokumentaci a sadu ukázkových úloh, které budou sloužit jako příklad použití.
[DP]
Syntéza obrazu podle předohy s využitím GPU - (Volné)
Prostudujte moderní algoritmy řešící problém syntézy obrazu na základě předohy [1,2]. Vycházejte z existujících implementací na CPU a v nich identifikujte časově náročné partie, pro které se vyplatí využít masivně paralelní výkon současných grafických akcelerátorů. Zaměřte se zejména na problém randomizovaného vyhledávání nejbližších sousedů s využitím metody PatchMatch [3]. Vlastní paralelní implementaci realizujte s pomocí technologie NVIDIA CUDA a otestujte její efektivitu na reálných datech, které dodá vedoucí práce. Ověřte také, zda GPU varianta dosahuje stejné kvality výstupu jako referenční CPU implementace.
[DP]
Syntéza na bázi fragmentů řízená hlubokými neuronovými sítěmi - (Volné)
Díky klíčové práci Gatyse a kol. [1] a jejich následovníků stoupl zájem o problém přenosu výtvarného stylu z grafické předlohy na cílovou fotografii. Ačkoli tato nová technika založená na použití neuronových sítí produkuje impresivní výsledky, má jeden zásadní nedostatek: nezachovává vizuální bohatost původní výtvarné předlohy. Tato klíčová složka je ale nezbytná pro zachování dojmu věrnosti reprodukce. V tomto smysly dosahují výrazně lepších výsledků metody založené na bezešvé kombinaci menších fragmentů originálu [2, 3], ty ale zase vyžadují speciální řídící prvky, které je potřeba algoritmicky či ručně předpřipravit. Cílem této disertační práce je prozkoumat možnost propojení syntézy na bázi fragmentů se schopností hlubokých neuronových sítí dodat smysluplnou sémantickou korespondenci mezi výtvarnou předlohou a cílovým obrazem [4].
[DP]
Uživatelem kontrolovaný přenosu stylu z výtvarné předlohy - (Volné)
Problém přenosu stylu z výtvarné předlohy na cílovou fotografii se stal nedávno populární zejména díky významným pokrokům v oblasti použití neuronových sítí [1, 2], syntéze založené na fragmentech [3, 4] a jejich kombinacích [5, 6]. Ačkoliv jsou výsledky těchto technik impresivní, mají jedno významné omezení: je relativně obtížné je kontrolovat. Navzdory skutečnosti, že tyto techniky mají mechanismy, které umožní specifikovat sémanticky smysluplný přenos konkrétního obsahu z předlohy na správné místo v cíli, je jejich návrh obvykle komplikovaný a často vyžaduje od uživatele neintuitivní přístup ve stylu pokus-omyl. Cílem této disertační práce je prozkoumat postupy, které umožní začlenit uživatelskou kontrolu přímo do průběhu syntézy a eliminuje tak neustále se opakující ruční zásahy při zachování původní vizuální bohatosti výtvarné předlohy.
[DP]
Míchání video streamů pro potřeby video konference - (Volné)
Pro potřeby projektu Semsung, který se zabývá audio/video konferenčními hovory realizovanými pomocí SIP infrastruktury, navrhněte a implementujte komponentu, která umožní míchání a distribuci video streamu pro účastníky konference.Řešení integrujte s existující infrastrukturou projektu Semsung.
[BP]
Zásuvný modul pro podporu Struts do NetBeans 6.0 - (Volné)
Seznamte se s webovým rámcem Struts. Analyzujte, jak je tento rámec podporován v jednotlivých vývojových prostředích (NetBeans, Eclipse, JBuilder atd.). Navrhněte a implementujte zásuvný modul do prostředí NetBeans verze 6, který zajistí podobnou podporu Struts.
-
[BP]
Audio a video streaming pomocí HTML 5 - (Volné)
Prozkoumejte možnosti streamování zvukové a video informace v moderních webových prohlížečích, které implementují HTML 5. Navrhněte a implementujte komponentu, která A/V stream zachytí a zpracuje. Komponentu integrujte do systému projektu Semsung, který se zabývá audio a video konferenčními hovory pomocí webového prohlížeče.
[BP]
Podpora interaktivní výuky a asistence ve školách – hra Slovní fotbal - (Rezervováno)
Navrhněte a implementujte hru „Slovní fotbal“ pro zařízení s OS Android za účelem obohacení slovní zásoby dětí v rámci výuky jazyků. Aplikace bude koncipovaná síťově, tj. bude možno hrát po síti s více uživateli. Dále implementujte server, který bude shromažďovat a vyhodnocovat pokroky jednotlivých hráčů. Hra se bude dát hrát jak za jednotlivce, tak i týmově na více zařízeních. Imlementaci ověřte vhodným testem použitelnosti.
[BP]
Mobilní aplikace pro aukční portál - (Volné)
Navrhněte a implementujte mobilní aplikaci na platformě Android, která bude sloužit pro nakupování, prodávání a přihazování na aukčním portálu Nume (www.nume.cz). Zohledněte omezené schopnosti mobilních zařízení ve smyslu velikosti obrazovaky, interakce apod. Aplikaci otestujte na vhodné množině cílových uživatelů. Na serverové straně aplikace navrhněte a implementujte vhodné rozhraní (web services nebo REST). (Rezervováno pro Veroniku Stojanovou FIT)
-
[BP]
Vizualizace síťového provozu IPS - (Volné)
Na mobilní plafromě - tabletu vizualizujte různé aspekty síťového provozu procházejícího přes IPS. Pomocí připraveného programového rozhraní vizualizujte také zásahy IPS do nastavení firewall.
[DP]
Webové uživatelské rozhraní pro Vokabulář Webový - (Volné)
Implementujte webové rozhraní pro aplikaci Vokabuláře Webového. Platfroma: ASP.NET. Postupujte metodou User Centred Design. Spolupracujte s členy řešitelského týmu. Využívejte již existujících webový služeb. Zvláštní pozornost věnujte metodám vyhledávání v databázi.
[BP]
Nástroj pro správu aukčních položek portálu Nume - (Volné)
Navrhněte a implementujte nástroj pro hromadné vkládání a správu položek na aukčním portálu Nume.cz. Kromě samotných položek bude nástroj umožňovat i manipulaci s fotografiemi předmětů a jejich zpracování před nahráním (typicky zmenšení na požadovanou velikost). Nástroj bude určený pro osobní počítače s operačním systémem Windows. Ke komunikaci s portálem navrhněte a implementujte REST rozhraní. Nástroj otestujte a to jak funkčními testy, tak testy použitelnosti.
[BP]
Kompletace 3D modelů areálů ČVUT - (Volné)
Seznamte se s výsledky dvou bakalářských prací z roku 2016, jejichž výstupem jsou 3D modely areálů ČVUT v Dejvicích a na Karlově náměstí. Proveďte uživatelské testy, analyzujte nedostatky obou řešení a navrhněte takové úpravy, které povedou k jednotné a zlepšené webové prezentaci obou 3D modelů.
Navržené úpravy realizujte. Spojte obě inovované 3D prezentace do jediného, nově vytvořeného 3D portálu ČVUT.
Definujte postup pro přidávání dalších areálů do portálu a ověřte jeho úplnost a univerzálnost na vhodně zvoleném menším bloku budov.
[BP]
360 panoramata ve webovém prohlížeči - (Volné)
Cílem práce je vyvinout a ověřit prezentaci historických panoramat (360 stupňů) v prostředí reálné Prahy, a to pouze ve webovém prohlížeči mobilních zařízení. Výsledná aplikace umožní vizuální prolínání (porovnání) současného světa a obrazů z historického 3D Langweilova modelu.
1) Prozkoumejte aktuální webové technologie a navrhněte techniku prezentace 360 panoramat ve webovém prohlížeči. Realizujte řešení, které automaticky nabídne vhodné panorama dle aktuální uživatelovy pozice v Praze a orientace záběru kamery. Existující panoramata průběžně stahujte z experimentálního portálu EduARd. Umožněte nastavení prolínání reálného obrazu s panoramatem.
2) Proveďte uživatelská testování, ověřte též různé platformy a prohlížeče.
3) Vyhodnoťte datovou náročnost přenosu dat včetně zpoždění, lícování reálných domů na panoramata, vliv světelných podmínek, citlivost na polohu uživatele a další parametry svého řešení
[DP]
Rozšířená realita a údržba zařízení - (Volné)
Vytvořte dvojici aplikací pro brýle HoloLens 2, které budou sloužit pro oddělení údržby:
1) V první aplikaci propojte brýle s existujícím systémem Condition monitoring (CM) tak, aby se při pohledu na kontrolované zařízení a objevení chybového hlášení v systému CM v brýlích zobrazil návod, jakým způsobem problém řešit. Pomocí rozšířené reality bude obsluha naváděna, jakým způsobem má chybnou část stroje opravit. Zobrazí se též přesný typ náhradního dílu, jeho umístění, případně informace o možnosti jeho objednání.
2) Druhá aplikace umožní expertovi vzdálenou navigaci pracovníka obsluhy s brýlemi, např. přidávání textových pokynů či operace s rozšiřujícími obrazovými informacemi.
Obě aplikace vytvořte ve spolupráci s určeným pracovníkem firmy Continental.
Skutečná zařízení simulujte vhodnou digitální náhradou.
[DP]
Rozšířená realita a školení operátorů - (Volné)
Vytvořte aplikaci pro brýle HoloLens2, která bude sloužit pro první stupeň školení nových operátorů.
V aplikaci bude vizualizace výrobní linky. Na každém dílčím pracovišti bude možné virtuálně sestavit vyráběný produkt jako na skutečné lince. Během montáže se bude operátorovi v brýlích zobrazovat výrobní návodka, kde budou popsány všechny montážní kroky, které musí na daném pracovišti vykonat.
Aplikaci vytvořte ve spolupráci s určeným pracovníkem firmy Continental.
[BP]
Nezalomitelné mezery v českém HTML - (Volné)
Typografická pravidla českého jazyka vyžadují přítomnost nezalomitelných mezer na specifických místech. Pro psaní HTML aktuálně není k dispozici přiměřený tooling, který by tuto činnost automatizoval (tak, jako např. program `vlna` pro TeX). Analyzujte problematiku automatického vkládání nezalomitelných mezer a implementujte ji jako rozšíření do několika populárních textových editorů.
[BP]
(obsolete) Kvantifikace a vizualizace optimalních clusterů residenčních oblastí - (Volné)
Seznamte se s otevřenými daty z následujících zdrojů:
- uzly MHD Praha z GTFS dat ROPID
- soupis rezidenčních oblastí z RÚIAN a OpenStreetMap
- hustota zalidnění jednotlivých rezidenčních budov (ČSÚ)
Nad těmito daty naimplementujte model, který bude vyhledávat shluky (clustery) rezidenčních oblastí na základě následujících vstupních a omezujících podmínek:
a) počet clusterů
b) minimum pěší vzdálenosti k nejbližší zastávce MHD
c) minimální dojezdové parametry (čas/vzdálenost) k nejbližší zastávce (automobilem)
Popište, jaké existují možnosti pro hledání trasy nutné v bodě c).
Pro implementaci vycházejte ze skriptů firmy Mileus (https://github.com/mileus/analytics-scripts), konkrétně:
- compute_nstop_stats, compute_stats_for_corridor, compute_cluster_scores, select_best_cluster_for_stop
- prepare_routes_and_stops
- compute_time_matrix_for_car, compute_distance_matrix_walk
Nad tímto modelem naimplementujte interaktivní webovou aplikaci, která bude umožňovat:
1) vstup zadaných parametrů pro model,
2) vizualizaci nalezených optimálních clusterů nad mapou,
3) zobrazení hodnot (získaných i dopočítaných) pro clustery
Více než na komfort uživatelského rozhraní aplikace se soustřeďte na korektnost a obecnost rozhraní mezi klientskou částí (web) a samotným modelem (server).
[DP]
(obsolete) Rozvoj statistik v aplikaci FitWolfe - (Volné)
Cílem diplomové práce je analýza a implementace rozšíření existujici webové/mobilní aplikace "FitWolfe", ktera vznikla jako výsledek Bakalářské práce v roce 2020.
Hlavní okruh pro obohacení aplikace je sběr, prezentace a využití statistik z jednotlivých cvičebních aktivit.
Na základě proběhlé rešerše (semestrální projekt) definujte datové sady, které budou aplikací sbírány a následně vizualizovány. Tato data budou generována mobilní aplikací a následně používána jednotlivými trenéry (webový klient).
Navrhněte datový model pro tato statistická data. Upravte:
- backendovou komponentu pro sběr, případnou agregaci a úložiště těchto dat;
- backendovou komponentu pro výdej časových řad těchto dat prostřednictvím vhodného API;
- webovou aplikaci pro vizualizaci dat.
Uvažte různé technologie pro vizualizaci dat (časových řad) v prostředí klientské webové aplikace. Naimplementované grafy otestuje na množině trenérů (uživatelů aplikace) a uvažte, zdali došlo ke splnění jejich požadavků.
[DP]
(obsolete) Rozdílové aktualizace dat - (Volné)
Předmětem této práce je infrastruktura pro synchronizaci stavu pomocí rozdílových aktualizací.
Uvažte komunikační model, ve kterém vystupuje server jako zdroj pravdy (tj. majitel kompletního aplikačního stavu) a libovolný počet klientů, kteří potřebují přijímat aktualizace stavu tak, jak k nim v reálném čase dochází. Klienti nemusí mít zájem o celý stav a mohou se tak ucházet o aktualizace jen specifikované podmnožiny stavu.
Prozkoumejte existující řešení tohoto problému v kontextu klientů = webových prohlížečů.
Následně navrhněte a naimplementujte framework, který řeší popsanou úlohu. Klienti mohou jevit zájem o celý datový model, nebo jeho podmnožinu (např. pomocí JSONPath), server posílá klientům rozdílové aktualizace tak, aby
1) minimalizoval zpoždění mezi změnou stavu a informovaností klienta,
2) minimalizovat objem přenášených dat.
Implementujte protokol nezávisle na transportním médiu - uvažujte možnost použití HTTP, WebSocket, WebRTC.
Analyzujte a změřte, jak mají různé algoritmy na detekci a serializaci rozdílových dat vliv na rychlost celého systému, resp. objem přenášených informací.