From 6fdf0674e7ca2387f5836baa24a38b71c989fa3d Mon Sep 17 00:00:00 2001
From: Michael Hazani <123mickey@gmail.com>
Date: Wed, 23 Sep 2020 17:35:58 -0700
Subject: [PATCH 1/3] rewrite watch tut for aardvark 1.0.2
---
docs/watch_tutorial/index.md | 437 +++++++++---------
.../media/hello-aardvark-dig.jpg | Bin 49091 -> 49091 bytes
docs/watch_tutorial/media/hello-aardvark.jpg | Bin 61845 -> 61845 bytes
docs/watch_tutorial/media/watch.glb | Bin 751520 -> 0 bytes
4 files changed, 223 insertions(+), 214 deletions(-)
delete mode 100644 docs/watch_tutorial/media/watch.glb
diff --git a/docs/watch_tutorial/index.md b/docs/watch_tutorial/index.md
index 08727ba2..6b6e68ae 100644
--- a/docs/watch_tutorial/index.md
+++ b/docs/watch_tutorial/index.md
@@ -9,336 +9,346 @@ This tutorial is intended to follow the [first one](https://aardvarkxr.github.io
In this guide we'll be building a simple digital watch; we'll utilize a panel and a 3D model, and implement a a little interactivity. Once you've worked through this guide, you should have two things:
-* A vintage 90s G-Shock watch gadget with a time/date display
-* A better understanding of the Aardvark scene graph, familiarity with useful nodes, and the gadget development workflow.
+- A vintage 90s G-Shock watch gadget with a time/date display
+- A better understanding of the Aardvark scene graph, familiarity with useful nodes, and the gadget development workflow.
# Step 1: _The First Time_ - Tooling and debugging
If you've worked on wearable VR/AR experiences, you're already familiar with the ergonomic difficulties of iterating on development and alternating between coding (headset off) and testing (headset on). You might already have a workflow you're comfortable with that mitigates this, in which case feel free to skim or skip this section. In any case, here's my typical workflow in the hope that it might be of use to you too:
-1. I like to stay in VR and work in the virtual desktop to minimize headset fidgeting time. It's worth knowing there are several good VR desktop solutions available like [this one, ](https://www.vrdesktop.net/) [this one, ](https://store.steampowered.com/app/457550/Bigscreen_Beta/) [this one](https://store.steampowered.com/app/1068820/OVR_Toolkit/) and [this one](https://store.steampowered.com/app/1178460/Desktop_Portal/) that play well with SteamVR, some of which look and feel much better than the built-in one.
+1. I like to stay in VR and work in the virtual desktop to minimize headset fidgeting time. It's worth knowing there are several good VR desktop solutions available like [this one, ](https://www.vrdesktop.net/) [this one, ](https://store.steampowered.com/app/457550/Bigscreen_Beta/) [this one](https://store.steampowered.com/app/1068820/OVR_Toolkit/) and [this one](https://store.steampowered.com/app/1178460/Desktop_Portal/) that play well with SteamVR, some of which look and feel much better than the built-in one.
2. Coding is done in VS Code, with the `npm start` script running in VS Code's terminal (you can launch a new terminal instance from VS Code's Terminal tab):
-
+
![workflow-1](./media/0-0-workflow.jpg)
-Note that the script watches the files and recompiles on change, so you don't have to "refresh" anything aside from hitting save. When iterating, the Aardvark renderer does *not* have to be restarted to reflect gadget updates but you *do* have to instantiate a new gadget every time you want to see the latest compiled changes (and probably want to discard that gadget after testing).
+Remember you'll also have to be *serving the gadget locally* during iteration as described in the [first tutorial]((https://aardvarkxr.github.io/aardvark/getting_started/)).
+
+Note that the script watches the files and recompiles on change, so you don't have to "refresh" anything aside from hitting save. When iterating, the Aardvark renderer does _not_ have to be restarted to reflect gadget updates but you _do_ have to instantiate a new gadget every time you want to see the latest compiled changes (and probably want to discard that gadget after testing).
This is what my workflow typically looks like - IDE, test in SteamVR, back to IDE:
![workflow.gif](./media/workflow.gif)
-3. For debugging, remember you can use Chrome's devtools on the Aardvark Server (http://localhost:8042/), as well as the Gadget Monitor (http://localhost:23842/gadgets/aardvark_monitor/index.html). You can also debug your gadget from VS Code, provided you've installed the Debugger for Chrome extension and answered "yes" to the `Do you want to debug with VS Code?` question when [instantiating your gadget](https://aardvarkxr.github.io/aardvark/getting_started/). You can then attach the debugger in VS Code and reload with the debugger widget button or ctrl-shift-F5. The create script will make a `launch.json` that attached to avrenderer to enable this.
-
+3. For debugging, remember you can use Chrome's devtools on the Aardvark Server (http://localhost:8042/), as well as the Gadget Monitor (http://localhost:23842/gadgets/aardvark_monitor/index.html). You can also debug your gadget from VS Code, provided you've installed the Debugger for Chrome extension and answered "yes" to the `Do you want to debug with VS Code?` question when [instantiating your gadget](https://aardvarkxr.github.io/aardvark/getting_started/). You can then attach the debugger in VS Code and reload with the debugger widget button or ctrl-shift-F5. The create script will make a `launch.json` that attached to avrenderer to enable this.
# Step 2: _Time of the Season_ - Adding a time/date panel
-Alright, now that we've got a dev environment and a nice workflow, we can jump into the code.
+Alright, now that we've got a dev environment and a nice workflow, we can jump into the code.
-You can find and download the **media assets** we'll be using [here](./PROJECT_ASSETS/).
+You can find the following code and the assets we'll be using [here](https://github.com/MichaelHazani/av-watch-gadget).
-Let's start by [instantiating a new gadget](https://aardvarkxr.github.io/aardvark/getting_started/). Give it any name you want, and select the defaults for everything (check out the [previous tutorial](https://aardvarkxr.github.io/aardvark/getting_started/) if you'd like a recap).
+Let's start by [instantiating a new gadget](https://aardvarkxr.github.io/aardvark/getting_started/). Give it any name you want, and select the defaults for everything (check out the [previous tutorial](https://aardvarkxr.github.io/aardvark/getting_started/) if you'd like a recap).
We'll be working primarily in `main.tsx` and `styles.css` located in the `src/` folder, which (after running `npm start` as described in the previous tutorial) get recompiled to the `dist/` folder on every save. Remember that `dist/` will be the root of your local references - where the compiled `index.js` will be solving paths from.
-Now, let's tweak the scene graph in `main.tsx` to a minimum, so that it only contains the bare bones:
+Now, let's tweak `main.tsx` to a minimum, so that it only contains the bare bones:
```tsx
+import { AvPanel, AvStandardGrabbable, AvTransform, DefaultLanding } from '@aardvarkxr/aardvark-react';
+import { Av, g_builtinModelBox } from '@aardvarkxr/aardvark-shared';
+import bind from 'bind-decorator';
import * as React from 'react';
import * as ReactDOM from 'react-dom';
-import bind from 'bind-decorator';
-
-import { AvGadget, AvTransform, AvPanel, AvStandardGrabbable } from '@aardvarkxr/aardvark-react';
-
interface WatchState {}
-class WatchGadget extends React.Component<{}, WatchState>
+class WatchGadget extends React.Component< {}, WatchState >
{
- constructor(props: any)
- {
- super(props);
+ constructor( props: any ) {
+ super( props );
}
- public render()
+ public render()
{
return (
-
- )
+
+ );
}
}
-ReactDOM.render(, document.getElementById("root"));
+
+let main = Av() ? :
+ReactDOM.render( main, document.getElementById( "root" ) );
+
```
+
Note we're using the following nodes:
-* ``, a node that conveniently gives us a grabbable handle and a model all at once. IT's currently using the placeholder model for now (we'll be replacing it later), with its scale adjusted.
-* `` to easily manipulate the contained panel's size, position and rotation.
-* `` that we'll use to display the actual time.
-
-We've also trimmed the imported components list and added an interface that will hold state. All the pieces are there - let's get to work!
+
+- ``, a node that conveniently gives us a grabbable handle and a model all at once. It's currently using the built in placeholder model for now (we'll be replacing it later), with its scale adjusted.
+- `` to easily manipulate the contained panel's size, position and rotation.
+- `` that we'll use to display the actual time.
+
+We've timmed much more: note the fewer imported modules, the removal of methods for networking-related state-dependent rendering, etc. Finally, we added the `WatchState` [interface](https://www.typescriptlang.org/docs/handbook/interfaces.html) that will hold the gadget state. All the pieces are there - let's get to work!
First, let's add a simple sanity check to make sure our dev environment is fully functional and the gadget is being updated - put this in your ``:
```tsx
-
- Hello Aardvark!
-
+Hello Aardvark!
```
+
Upon saving and instantiating a new gadget, you should be able to see immediate results, but they'll default to the size of fairly small chicken scratch. In `styles.css`, let's fix that!
```css
-.Watch
-{
- font-size: 4rem;
+.watch {
+ font-size: 3rem;
}
```
+
![hello-aardvark](./media/hello-aardvark.jpg)
-Now we're cooking with fire. Let's get the text looking like a proper digital watch digits. We'll tweak the CSS of the `.Watch` class so that the numbers utilize a nice digital font (I picked the freely available [Digital 7](https://www.1001fonts.com/digital-7-font.html), and position it somewhere that'll make sense once we add the digital watch model.
+Now we're cooking with fire. Let's get the text looking like a proper digital watch digits. We'll tweak the CSS of the `.watch` class so that the numbers utilize a nice digital font (I picked the freely available [Digital 7](https://www.1001fonts.com/digital-7-font.html), and position it somewhere that'll make sense once we add the digital watch model.
A nice trick here is making the panel background transparent, because we don't want a "page" as much as "digits displayed on a watch's screen". Here's `styles.css`:
```css
-@font-face
-{
- font-family: 'digital-7';
- src: url('./fonts/digital-7\ \(mono\).ttf')
+@font-face {
+ font-family: "digital-7";
+ src: url("./fonts/digital-7\ \(mono\).ttf");
}
-body, html {
- background-color: transparent;
+body,
+html {
+ background-color: transparent;
}
-.Watch {
- font-family: 'digital-7', monospace;
- font-size: 2.8rem;
- color: #4Af626;
- margin-top: 47%;
- margin-left:48%;
- max-width: 1.5rem;
+.watch {
+ font-family: "digital-7", monospace;
+ font-size: 2.8rem;
+ color: #4af626;
+ margin-top: 47%;
+ margin-left: 48%;
+ max-width: 1.5rem;
}
+
```
+
+
et voilĂ !
![hello-aardvark-digital](./media/hello-aardvark-dig.jpg)
-
# Step 3: _Time After Time_ - Adding the Watch model
-After scouring Poly and Sketchfab for good, free digital watch models, I found this [great-looking, downloadable photogrammetized model of a Casio G-Shock](https://sketchfab.com/3d-models/casio-g-shock-digital-watch-b6466b64dd8b495c99f24a5054491f4d) by [jeandiz](https://sketchfab.com/jeandiz). Clocking in at ~25MB, its textures are way too nice and detailed for our purposes, so I've resized them in imagemagick and did some model cleanup in Blender; you can find the optimized, <1MB gltf file [here](./PROJECT_ASSETS/models/watch.glb).
+After scouring Poly and Sketchfab for good, free digital watch models, I found this [great-looking, downloadable photogrammetized model of a Casio G-Shock](https://sketchfab.com/3d-models/casio-g-shock-digital-watch-b6466b64dd8b495c99f24a5054491f4d) by [jeandiz](https://sketchfab.com/jeandiz). Clocking in at ~25MB, its textures are way too nice and detailed for our purposes, so I've resized them in imagemagick and did some model cleanup in Blender; you can find the optimized, <1MB gltf file [here](./PROJECT_ASSETS/models/watch.glb).
![Casio](media/casio.jpg)
Let's make this the gadget preview model while we're at it! in `manifest.webmanifest`, under `icons`, change to:
+
```webmanifest
- "icons": [
+ 'icons': [
{
"src": "models/watch.glb",
"type": "model/gltf-binary"
}
],
```
+
**important** - assets don't get automagically copied over in our webpack script. Let's head over to `webpack.config.js` and in `plugins`, under the `CopyPlugin` settings, add:
+
```json
- { from: './src/models/', to: 'models/' },
- { from: './src/fonts/', to: 'fonts/' }
+({ "from": "./src/models/", "to": "models/" },
+{ "from": "./src/fonts/", "to": "fonts/" })
```
+
to ensure that our model and font get properly copied over to the `dist` folder, which is our root, on every compile.
-Now that our gadget preview is all set up, let's add the watch to the gadget itself:
+Now that our gadget preview is all set up, let's add the watch to the gadget itself. Here's our revised render function:
+
```tsx
-
-
-
-
-
- Hello Aardvark!
-
-
-
-
-
+ public render()
+ {
+ return (
+
+
+
+
+ Hello Aardvark!
+
+
+
+
+ );
+ }
```
-Not *too* much happening here. First, note that we've changed the model in `` to be our watch. We're using the `` component to place the text (which will soon be the time/date) relatively to the model. The values are a result of trial and error - our main concern is having the watch in a reasonable place and setting the digits' size and location with the `` values and the `.Watch` class' CSS.
-
+Not _too_ much happening here. First, note that we've changed the model in `` to be our watch. We're using the `` component to place the text (which will soon be the time/date) relatively to the model. The values are a result of trial and error - our main concern is having the watch in a reasonable place and setting the digits' size and location with the `` values and the `.watch` class' CSS.
# Step 4: _Time for Action_ - Making it interactive
-Alright, so we've got a watch; time (heh) to make it tick!
+Alright, so we've got a watch; time (heh) to make it tick!
In the spirit of old school digital watches, let's have a `time` display and - when the screen is "clicked" with a VR controller - switch to a `date` display. We'll start by adding a "watchDisplay" string and an instance of a new `watchDisplayType` enum to our state interface, to manage the display state:
```tsx
-enum watchDisplayType
-{
- Time,
- Date
+enum watchDisplayType {
+ Time,
+ Date,
}
-interface WatchState
-{
- watchDisplayTypeInstance: watchDisplayType;
- watchDisplay: string;
+interface WatchState {
+ watchDisplayTypeInstance: watchDisplayType;
+ watchDisplay: string;
}
```
-In the `WatchGadget` class, we'll:
-* initialize this state in the constructor
-* create class methods `getTime()` to keep time & `changeDisplay()` update the display state (note that `this.getTime()` will update the `watchDisplay` state every second);
+In the `WatchGadget` class, we'll:
-```tsx
-class WatchGadget extends React.Component<{}, WatchState>
-{
+- initialize this state in the constructor
+- create class methods `getTime()` to keep time & `changeDisplay()` update the display state (note that `this.getTime()` will update the `watchDisplay` state every second);
- constructor(props: any)
- {
- super(props);
- this.state =
- {
- watchDisplayTypeInstance: watchDisplayType.Time,
- watchDisplay: ""
- };
- }
-
- componentDidMount()
- {
- setInterval(this.getTime, 1000);
+```tsx
+class WatchGadget extends React.Component<{}, WatchState> {
+ constructor(props: any) {
+ super(props);
+ this.state = {
+ watchDisplayTypeInstance: watchDisplayType.Time,
+ watchDisplay: "",
+ };
+ }
+
+ componentDidMount() {
+ setInterval(this.getTime, 1000);
+ }
+
+ @bind
+ private getTime() {
+ switch (this.state.watchDisplayTypeInstance) {
+ case watchDisplayType.Time:
+ this.setState({ watchDisplay: new Date().toLocaleTimeString() });
+ break;
+
+ case watchDisplayType.Date:
+ this.setState({
+ watchDisplay: new Date().toLocaleDateString(undefined, {
+ month: "2-digit",
+ day: "2-digit",
+ year: "2-digit",
+ }),
+ });
+ break;
+
+ default:
+ break;
}
-
- @bind
- private getTime()
- {
- switch (this.state.watchDisplayTypeInstance)
- {
- case watchDisplayType.Time:
- this.setState({ watchDisplay: new Date().toLocaleTimeString() });
- break;
-
- case watchDisplayType.Date:
- this.setState({ watchDisplay: new Date().toLocaleDateString(
- undefined,
- { month: "2-digit", day: "2-digit", year: "2-digit" })});
- break;
-
- default:
- break;
- }
- }
-
- @bind
- public changeDisplay()
- {
- this.state.watchDisplayTypeInstance == watchDisplayType.Date ?
- this.setState({ watchDisplayTypeInstance: watchDisplayType.Time }) :
- this.setState({ watchDisplayTypeInstance: watchDisplayType.Date });
- }
-}
+ }
+
+ @bind
+ public changeDisplay() {
+ this.state.watchDisplayTypeInstance == watchDisplayType.Date
+ ? this.setState({ watchDisplayTypeInstance: watchDisplayType.Time })
+ : this.setState({ watchDisplayTypeInstance: watchDisplayType.Date });
+ }
+// (the rest of our code...)
```
-finally, we'll update what we're displaying in the `Watch` div and add an `onMouseDown` event handler, in order to trigger the display change:
+finally, in our render method, we'll update what we're displaying in the `watch` div and add an `onMouseDown` event handler, in order to trigger the display change:
```tsx
-
- {this.state.watchDisplay}
-
+
+ {this.state.watchDisplay}
+
```
Here's `main.tsx` after all our additions:
```tsx
+import { AvPanel, AvStandardGrabbable, AvTransform, DefaultLanding } from '@aardvarkxr/aardvark-react';
+import { Av } from '@aardvarkxr/aardvark-shared';
+import bind from 'bind-decorator';
import * as React from 'react';
import * as ReactDOM from 'react-dom';
-import bind from 'bind-decorator';
-
-import { AvGadget, AvTransform, AvPanel, AvStandardGrabbable } from '@aardvarkxr/aardvark-react';
-
-enum watchDisplayType
-{
+enum watchDisplayType {
Time,
- Date
+ Date,
+ }
+
+interface WatchState {
+watchDisplayTypeInstance: watchDisplayType;
+watchDisplay: string;
}
-interface WatchState
+class WatchGadget extends React.Component< {}, WatchState >
{
- watchDisplayTypeInstance: watchDisplayType;
- watchDisplay: string;
-}
-
-class WatchGadget extends React.Component<{}, WatchState>
-{
- constructor(props: any)
- {
- super(props);
- this.state =
- {
- watchDisplayTypeInstance: watchDisplayType.Time,
- watchDisplay: ""
- }
- }
-
- componentDidMount()
- {
- setInterval(this.getTime, 1000);
- }
-
- @bind
- private getTime()
- {
- switch (this.state.watchDisplayTypeInstance)
- {
-
- case watchDisplayType.Time:
- this.setState({ watchDisplay: new Date().toLocaleTimeString() });
- break;
-
- case watchDisplayType.Date:
- this.setState({ watchDisplay: new Date().toLocaleDateString(undefined, { month: "2-digit", day: "2-digit", year: "2-digit" }) });
- break;
-
- default:
- break;
- }
- }
+ constructor(props: any) {
+ super(props);
+ this.state = {
+ watchDisplayTypeInstance: watchDisplayType.Time,
+ watchDisplay: "",
+ };
+ }
+
+ componentDidMount() {
+ setInterval(this.getTime, 1000);
+ }
+
+ @bind
+ private getTime() {
+ switch (this.state.watchDisplayTypeInstance) {
+ case watchDisplayType.Time:
+ this.setState({ watchDisplay: new Date().toLocaleTimeString() });
+ break;
+
+ case watchDisplayType.Date:
+ this.setState({
+ watchDisplay: new Date().toLocaleDateString(undefined, {
+ month: "2-digit",
+ day: "2-digit",
+ year: "2-digit",
+ }),
+ });
+ break;
+
+ default:
+ break;
+ }
+ }
- @bind
- public changeDisplay()
- {
- this.state.watchDisplayTypeInstance == watchDisplayType.Date ?
- this.setState({ watchDisplayTypeInstance: watchDisplayType.Time }) :
- this.setState({ watchDisplayTypeInstance: watchDisplayType.Date });
- }
+ @bind
+ public changeDisplay() {
+ this.state.watchDisplayTypeInstance == watchDisplayType.Date
+ ? this.setState({ watchDisplayTypeInstance: watchDisplayType.Time })
+ : this.setState({ watchDisplayTypeInstance: watchDisplayType.Date });
+ }
public render()
{
return (
-
- )
+
+
+
+
+
+ {this.state.watchDisplay}
+
+
+
+
+
+ );
}
}
-ReactDOM.render(, document.getElementById("root"));
+
+let main = Av() ? :
+ReactDOM.render( main, document.getElementById( "root" ) );
+
```
And here's our gadget in action:
@@ -349,12 +359,11 @@ There you have it. Your own Casio Watch gadget. Now go wander the metaverse in s
# Step 5: _Closing Time_ - a few tips for the road:
-* Remember, Aardvark is designed as an overlay for **gadgets**. It's open source, built with the state of the art frameworks and standards, and can do quite a lot - but it's best thought of as a tool for making the _things_ in the **people-places-things** trifecta. While you could conceivably use it to make places (or, ahem, _people_?) - it is decidedly not its purpose or planned use case; _things_ are where it shines.
-
-* The [Aardvark React documentation](https://aardvarkxr.github.io/aardvark/aardvark-react/) is a great next step: it describes most of the available node types in Aardvark, as well as what their properties are.
+- Remember, Aardvark is designed as an overlay for **gadgets**. It's open source, built with the state of the art frameworks and standards, and can do quite a lot - but it's best thought of as a tool for making the _things_ in the **people-places-things** trifecta. While you could conceivably use it to make places (or, ahem, _people_?) - it is decidedly not its purpose or planned use case; _things_ are where it shines.
+- The [Aardvark React documentation](https://aardvarkxr.github.io/aardvark/aardvark-react/) is a great next step: it describes most of the available node types in Aardvark, as well as what their properties are.
-* Work on Aardvark is currently in progress. Docs are constantly updated, the API evolves almost daily, and new features land frequently. You're welcome to join the [AardvarkXR Slack](aardvarkxr.slack.com) to chat with the folks working on it and have your questions answered, your feedback listened to and your troubles melt away like lemon drops. You should also drop by if you've made something cool and would like to share it or even have it featured.
+- Work on Aardvark is currently in progress. Docs are constantly updated, the API evolves almost daily, and new features land frequently. You're welcome to join the [AardvarkXR Slack](aardvarkxr.slack.com) to chat with the folks working on it and have your questions answered, your feedback listened to and your troubles melt away like lemon drops. You should also drop by if you've made something cool and would like to share it or even have it featured.
Thanks for reading, and happy hacking!
---------------------
+---
diff --git a/docs/watch_tutorial/media/hello-aardvark-dig.jpg b/docs/watch_tutorial/media/hello-aardvark-dig.jpg
index 35c94bad88eeade34908f514612451a4d9154c9c..b3ac68f4633d01db82b0b6ad58f6b56e2bfa12ad 100644
GIT binary patch
delta 41077
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