<script>
import { createNewFileButton, openBrowser, openComponent } from "../../PX2018/project_2/utils.js";
</script>

<link rel="stylesheet" type="text/css" href="../../PX2018/project_2/utils.css"></link>

# Hierarchical Data and Asynchronicity for VivideJS

[midterm presentation](presentation/presentation-2018-05-15.md) [final presentation](presentation/presentation-2018-07-03.md)


<script>
if (typeof createNewFileButton !== 'function') {var createNewFileButton = function f(){};}
createNewFileButton("doc/RP2018/vivide-js/", "New Notice", "notices");
</script>
<script>
if (typeof createNewFileButton !== 'function') {var createNewFileButton = function f(){};}
createNewFileButton("doc/RP2018/vivide-js/meeting/", "New Meeting", "meeting", true);
</script>
<script>
if (typeof createNewFileButton !== 'function') {var createNewFileButton = function f(){};}
createNewFileButton("doc/RP2018/vivide-js/presentation/", "New Presentation", "presentation", true);
</script>

[Vivide directory](browse://src/client/vivide/)

Vivide View: <div class="inline"><script>if (typeof openComponent !== 'function') {var openComponent = function f(){};} openComponent('vivide-view', 'Vivide View')</script></div>



[Alternative](open://vivide-view)

