Skip to content
This repository was archived by the owner on Jan 24, 2020. It is now read-only.

XR Search autocomplete #55

Open
wants to merge 382 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
382 commits
Select commit Hold shift + click to select a range
6115439
Add initial css
Jun 29, 2019
2d6f36b
Merge pull request #48 from exokitxr/grid
Jun 29, 2019
28949cf
Debugging regular browser case
Jun 29, 2019
b935a8a
More fake xr debugging
Jun 29, 2019
8c3f4ed
More grid debugging
Jun 29, 2019
19f4c73
Add background.mp3
Jun 29, 2019
f65895e
Add autoplay audio
Jun 29, 2019
55f4d5c
Add buildings.glb model source
Jun 29, 2019
5e9c6a3
Dead code cleanup
Jun 29, 2019
b175cd2
Update camera far
Jun 29, 2019
fee0fc9
Increase directional light intensity
Jun 29, 2019
c0152ac
Clean up buildings rendering
Jun 29, 2019
233051b
Update README.md
Jun 29, 2019
2f1689f
Merge pull request #49 from cmdrflexo/patch-1
Jun 29, 2019
5dab2cf
Add scene fog
Jun 29, 2019
d0dce15
Update fog parameters
Jun 29, 2019
7277e5d
Add sdf font rendering
Jun 30, 2019
53c3d9f
Remove dead bmfont loading code
Jun 30, 2019
4547631
Clean up text geometry offsetting
Jun 30, 2019
4c0b198
Move fake xr capture to double-click
Jun 30, 2019
0b0f36e
Add gamepads click guards
Jun 30, 2019
44ff826
Clean up text mesh initialization
Jul 1, 2019
0dc24bf
Clean up fake vr faking
Jul 1, 2019
c215c8b
Add initial controller tool mesh
Jul 1, 2019
6666823
Add tool mesh initial text mesh
Jul 1, 2019
cdc0f89
Make tool mesh type updatable
Jul 1, 2019
cb7bfc4
Dead code cleanup
Jul 1, 2019
83d83e2
More tool mesh cleanup
Jul 1, 2019
3bdb614
Major plane mesh set work
Jul 1, 2019
5d4ce54
Add browser mesh label mesh setup
Jul 1, 2019
2886f05
Clean up browser mesh drawing
Jul 1, 2019
b04c4b1
Add initial label intersection check
Jul 1, 2019
a60bc4b
Disable label mesh sort objects
Jul 2, 2019
2afd88c
Add label mesh update flow
Jul 2, 2019
59d5988
Bugfix label mesh matrix world update
Jul 2, 2019
e8a3c1a
Bugfix label mesh typos
Jul 2, 2019
8a235b3
Bugfix label mesh hit detection
Jul 2, 2019
f4b0b71
Logging cleanup
Jul 2, 2019
db2625b
Label mesh caret resolution debugging
Jul 2, 2019
930df82
Major pointer mesh cleanup
Jul 2, 2019
299bbf9
Add caret mesh support
Jul 2, 2019
bad49a3
Disable key movement in orbit controls
Jul 2, 2019
4866972
Small semis cleanup
Jul 2, 2019
b22abe9
Major keyboard event handling work
Jul 2, 2019
a5ae38d
Only trigger keyboard buttons when pointer locked
Jul 2, 2019
90180dc
Bugfix tool mesh side
Jul 2, 2019
7c8ce82
Clean up keyboard focus handling
Jul 2, 2019
88bd841
Use white background
Jul 9, 2019
5b4f0f8
Remove dead sphere mesh code
Jul 9, 2019
672799c
More dead sphere mesh code deletion
Jul 9, 2019
962591a
Commenting cleanup
Jul 9, 2019
81f6ea8
Remove dead buildings rendering code
Jul 9, 2019
00c4dfa
Clean up pointer mesh on white background
Jul 9, 2019
e7c17e7
Bugfix menu open key gamepad emulation target
Jul 9, 2019
3b09000
Remove menu mesh
Jul 9, 2019
ec17c2f
Clean up browser mesh color
Jul 9, 2019
3d2e88b
Clean up label mesh color
Jul 9, 2019
21ca384
Remove dead menu update code
Jul 9, 2019
161783f
Room link mesh attachment work
Jul 9, 2019
a5e4053
Major dead menu mesh code cleanup
Jul 9, 2019
12e6c31
Add floor mesh
Jul 9, 2019
3a059df
Working in new point mesh creation
Jul 9, 2019
7a6cc91
Bugfix camera projection matrix update
Jul 9, 2019
bd83c14
Bugfix point mesh drawing
Jul 9, 2019
9b3fdd4
Rename volume mesh to content mesh
Jul 9, 2019
7dfae6c
Clean up pointer mesh setting
Jul 9, 2019
1755dc4
Add volume mesh add mode
Jul 9, 2019
aa81ac7
Add initial mousemove tracking
Jul 10, 2019
904a6d3
Add basic mouse apply to fake xr display
Jul 10, 2019
95f3e0a
Fake XR display bugfixing
Jul 11, 2019
09d00b0
Typo bugfix
Jul 11, 2019
f16c5b3
Double-side controller ray mesh
Jul 11, 2019
9205f52
Clean up push gamepads update api
Jul 11, 2019
9078da0
Update movement update on non-pointer lock
Jul 11, 2019
5ed02f5
Bugfix orbit controls management
Jul 11, 2019
c0ac849
Clean up label mesh intersections
Jul 11, 2019
8e8842d
Add point mesh intersection support
Jul 11, 2019
be3fe8b
Bugfix resize
Jul 11, 2019
10fff58
Remove dead targetMesh
Jul 11, 2019
abc5803
Add icon images
Jul 11, 2019
a99f3c7
Add initial icons rendering
Jul 11, 2019
62d4f1d
Add icon mesh cleanup
Jul 11, 2019
d05a7d1
Double-side app icon meshes
Jul 11, 2019
c73540a
Remove point meshes from intersection consideration
Jul 11, 2019
7520e9c
Icons debugging
Jul 11, 2019
ad90f06
Add more icon files
Jul 11, 2019
00116a9
Add icons loading to index.html
Jul 11, 2019
04f4837
Hook in initial keyboard mesh to tray mesh
Jul 11, 2019
6a751b2
Add label mesh to tray mesh
Jul 11, 2019
6057ab6
Major tray mesh intersection work
Jul 11, 2019
1f994a1
Make tray mesh icons selectable
Jul 11, 2019
7a31097
Add Google favicon to tray mesh icons list
Jul 11, 2019
f14bd5a
Split action/app icons
Jul 12, 2019
4da5339
Support null app icons
Jul 12, 2019
f84632a
Add arrow left image for tray mesh navigation
Jul 12, 2019
12ae22a
Add location/plus icons in tray mesh
Jul 12, 2019
ee6093f
Bugfix keyboard focus tracking
Jul 12, 2019
110ea69
Add tab onclick infrastructure
Jul 12, 2019
3dc5a84
Logging cleanup
Jul 12, 2019
cfcd4fd
More tray mesh navigation work
Jul 12, 2019
d60ac48
Add app add button support
Jul 12, 2019
5e34e3d
Add crosshair icon
Jul 12, 2019
ccb73d0
Add crosshair/close icon meshes
Jul 12, 2019
9be348e
Add tab remove support
Jul 12, 2019
bf317ae
Add move mesh support
Jul 12, 2019
93a36df
Add more move mesh types
Jul 12, 2019
3a7c8f1
Add icon mesh paging support
Jul 12, 2019
d33f038
Update move meshes to support all types
Jul 12, 2019
66eb1cb
Clean up initialization of keyboard highlight canvas
Jul 12, 2019
c3d14dc
Remove initial room diagram mesh
Jul 12, 2019
ca5e24a
More rooms initialization cleanup
Jul 12, 2019
75743c9
Keyboard mesh intersection work
Jul 12, 2019
69e652c
More keyboard intersection debugging
Jul 12, 2019
d0c35b4
Refactor XR entry
Jul 12, 2019
b5b1b01
Bugfix async call
Jul 12, 2019
82dbc13
Debug XR entry with real fake xr display
Jul 12, 2019
0bdd06a
Bugfix fake xr display mousedown/mouseup handling
Jul 12, 2019
6c70efb
Manually enable/disable fake xr display
Jul 12, 2019
068cb46
Add real XR enter R key handling
Jul 12, 2019
abb64b6
Logging cleanup
Jul 12, 2019
1bc6747
Bugfix update grid controls gamepads count
Jul 13, 2019
96dc2a1
Make session tracked globally
Jul 13, 2019
b4820d0
Support fake XR display exiting
Jul 13, 2019
8e787d2
Bugfix setDevice -> setSession
Jul 13, 2019
a1e63b3
Add FakeXRDisplay null check
Jul 13, 2019
922e936
Bugfix UI mousemove clientX/clienY read
Jul 13, 2019
4197443
Bugfix fake xr display mouse tracking
Jul 13, 2019
1ef9726
Spacing cleanup
Jul 13, 2019
302ba7b
Do not automatically show controller meshes on xr binding
Jul 13, 2019
476b2f7
Update intersections only for visible controller meshes
Jul 13, 2019
50f3c08
Add fake xr display polyfill enable/disable methods
Jul 13, 2019
8b31e1d
Gamepads iteration cleanup
Jul 13, 2019
c467a64
Use right gamepad by default in 2D
Jul 13, 2019
6e587c0
Do not pointer lock on intersections
Jul 13, 2019
db4be97
Add missing keyboard.svg
Jul 13, 2019
c7afe0a
Add initial key intersection logging
Jul 13, 2019
c1b4f48
Small pointerLockElement check cleanup
Jul 13, 2019
1a7d48c
Allow ESC out of keyboard focus
Jul 13, 2019
64ce787
More pointerLockElement check cleanup
Jul 13, 2019
104b30a
Clean up E/R key handling for ui binding
Jul 13, 2019
9f8c9bf
More E key handling cleanup
Jul 13, 2019
ac3df38
Small naming cleanup
Jul 13, 2019
8dfb8be
Track type in app icon mesh
Jul 13, 2019
25562a0
Make app icon add immediatel go to moove mode
Jul 13, 2019
bf67b38
Bugfix missing trayMesh labelMesh reference
Jul 13, 2019
c1d28fc
Small commenting cleanup
Jul 13, 2019
f33d7e5
Clean up tray mesh animation keyframes
Jul 13, 2019
bd0835e
Disable gridMesh
Jul 13, 2019
c25f891
Add SkyboxMesh
Jul 13, 2019
e847715
Remove dead sykbox mesh update flow
Jul 13, 2019
06df4f4
Remove label mesh depth write
Jul 13, 2019
57b52f6
Make label mesh a prism
Jul 13, 2019
12dce30
Add icon mesh alpha test
Jul 13, 2019
986a10c
Add initial reality tabs iframe support
Jul 13, 2019
63ff6bb
Logging cleanup
Jul 13, 2019
c428af1
Increase animation time to 1 second
Jul 13, 2019
de8e406
Major animations refactoring
Jul 13, 2019
02f0089
Comment out unneeded script tags
Jul 13, 2019
cd99bb0
Clean up url prototypes for different realiy tab types
Jul 13, 2019
9235956
Commenting cleanup
Jul 13, 2019
08e07da
Hook in reality tabs destroy
Jul 13, 2019
082e9a4
Clean up target geometry names
Jul 13, 2019
52cc6b7
Target geometry name bugfixing
Jul 13, 2019
3c3e452
Update make portal interface
Jul 13, 2019
2056952
Clean up make iframe
Jul 13, 2019
1e74111
Update iframe destroy flow
Jul 13, 2019
a5ead78
Add portal layer construction hook
Jul 13, 2019
192c3fd
Flip portal/volume default urls
Jul 14, 2019
5b716f2
Clean up door mesh color
Jul 14, 2019
0aedaa6
Clean up iframe event listeners
Jul 14, 2019
8082209
Track viewport vector for portals
Jul 14, 2019
8a25c7c
Remove dead content/portal meshes code
Jul 14, 2019
2e95cc3
Preload x.png for portal
Jul 14, 2019
5f0adaa
Bugfix portal iframe textures bindings
Jul 14, 2019
45e49e8
Clean up portal/volume view/projection matrix textures capture hack
Jul 14, 2019
87a2dfc
Remove dead xrmp files
Jul 14, 2019
21c675f
Bugfix initial tray mesh position
Jul 14, 2019
26b06c7
Comment out dead GLTFLoader script reference
Jul 14, 2019
5ac25a8
Add initial url entry tracking
Jul 14, 2019
88fb891
Clean up layer menu transition flow
Jul 14, 2019
6a35696
Make portals src-settable
Jul 14, 2019
c8f9f67
Make app icons src-settable
Jul 14, 2019
76fb9d3
Comment out extra directional light
Jul 14, 2019
1779849
Make text geometry width infinite
Jul 14, 2019
3076150
Bugfix app icon open url setting
Jul 14, 2019
ae76224
Add app icon add url setting support
Jul 14, 2019
325ed17
Allow iframes to be re-loaded
Jul 14, 2019
7be7f6a
Bugfix iframe src console log
Jul 14, 2019
d9d8b7b
Dead code cleanup
Jul 25, 2019
7825c56
Dead code re-add
Jul 25, 2019
7eb1982
Dead code re-add again
Jul 25, 2019
8dd66f2
Use new map icon
Jul 25, 2019
bb14291
Remove portal code
Jul 25, 2019
6a58e8b
Bugfix local icon mesh visibility
Jul 25, 2019
724374b
Remove dead links list
Jul 25, 2019
e0809f6
Add map mesh
Jul 25, 2019
13e953d
Filter invisible meshes from intersection consideration
Jul 25, 2019
b653c4b
Make map mesh invisible by default
Jul 25, 2019
9876a0b
Remove dead background
Jul 25, 2019
6dd4faf
Remove dead controller geometry
Jul 25, 2019
7eaf85c
Add map mesh avatar
Jul 25, 2019
57cadbd
Add map intersection support
Jul 26, 2019
b6f1067
Add map intersection clickability
Jul 26, 2019
bf6e358
Clean up volume mesh rendering
Jul 26, 2019
29691e1
Add floor mesh latching for reality tabs move
Jul 26, 2019
922fa56
Decrease floor mesh latch distance
Jul 26, 2019
c785d3a
Make map mesh follow world instead of tray mesh
Jul 26, 2019
7570c3f
Add floor scene color rendering support
Jul 26, 2019
d77752c
Add new guardian mesh
Jul 26, 2019
beaa090
Make label mesh double sided
Jul 26, 2019
f8e4416
Do not intersect when menu is hidden
Jul 26, 2019
fba37fe
Major scenes work
Jul 26, 2019
a8b8d48
Initial floor click handling
Jul 26, 2019
bd90ebe
Add scene selection support
Jul 26, 2019
fdae1d0
Major dead code removal
Jul 26, 2019
56704d7
Use menu instead of grip for opening tray
Jul 26, 2019
c6ca5d6
Add selected base mesh multi-select support
Jul 26, 2019
1bbadd9
Make map mesh double sided
Jul 26, 2019
b169e3b
More dead code removal
Jul 26, 2019
e7e2ab2
Major dead code removal
Jul 26, 2019
1f05af5
Make move meshes persistent
Jul 26, 2019
1fe26cd
Clean up base mesh geometry refresh
Jul 26, 2019
c2e600b
More dead code cleanup
Jul 26, 2019
8487da4
Iframe destroy throw bugfix
Jul 26, 2019
72eece2
Remove move meshes along with icon mesh
Jul 26, 2019
fd59c6b
Make guardian mesh geometry refreshable
Jul 26, 2019
8c1d914
Add map arrow meshes
Jul 27, 2019
259a4cb
Bugfix guardian mesh rendering
Jul 27, 2019
de4b4ca
Bugfix missing guardian mesh destroy method
Jul 27, 2019
ee55b6e
Bugfix scene set/remove
Jul 27, 2019
3db53e3
Clean up scene tracking
Jul 27, 2019
ff88041
More scene setting debugging
Jul 27, 2019
cde634f
Bugfix selection
Jul 27, 2019
699b977
Floor mesh select bugfixing
Jul 27, 2019
8a4ad5b
Bugfix app icon mesh close
Jul 27, 2019
d16cc87
Clean up selected scene tracking
Jul 27, 2019
0d0102c
Clean up current scene color
Jul 27, 2019
b609213
Major map icons refactoring
Jul 27, 2019
8650acd
More scene partial selection debugging
Jul 28, 2019
2825923
Initial binding urls to scenes
Jul 28, 2019
b255691
More app scene tracking work
Jul 28, 2019
323cff5
Major app scene binding debugging
Jul 28, 2019
9ab2923
More major app scene binding tracking bugfixing
Jul 28, 2019
36a9c1f
Add initial secure scene rendering support
Jul 28, 2019
ad427a3
Dead code removal
Jul 28, 2019
2148038
Temporarily remove secure environment hook
Jul 28, 2019
28c3ac6
Bugfix reality tabs layers add/remove
Jul 28, 2019
d730aa8
add initial search results log
chrislatorres Jul 29, 2019
f3d2c4c
move autocomplete results to own function
chrislatorres Jul 29, 2019
428bec3
add mesh for results above url bar
chrislatorres Jul 30, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
647 changes: 647 additions & 0 deletions BufferGeometryUtils.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions CNAME
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exo.land
1 change: 1 addition & 0 deletions DejaVu-sdf.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"pages":["DejaVu.png"],"chars":[{"id":32,"x":0,"y":0,"width":0,"height":0,"xoffset":0,"yoffset":30,"xadvance":19,"page":0,"chnl":0},{"id":124,"x":0,"y":0,"width":13,"height":42,"xoffset":4,"yoffset":1,"xadvance":19,"page":0,"chnl":0},{"id":106,"x":13,"y":0,"width":19,"height":41,"xoffset":-1,"yoffset":1,"xadvance":19,"page":0,"chnl":0},{"id":36,"x":32,"y":0,"width":25,"height":40,"xoffset":-1,"yoffset":0,"xadvance":19,"page":0,"chnl":0},{"id":125,"x":57,"y":0,"width":23,"height":40,"xoffset":-1,"yoffset":1,"xadvance":19,"page":0,"chnl":0},{"id":123,"x":80,"y":0,"width":23,"height":40,"xoffset":-1,"yoffset":1,"xadvance":19,"page":0,"chnl":0},{"id":93,"x":103,"y":0,"width":17,"height":39,"xoffset":1,"yoffset":1,"xadvance":19,"page":0,"chnl":0},{"id":91,"x":120,"y":0,"width":17,"height":39,"xoffset":3,"yoffset":1,"xadvance":19,"page":0,"chnl":0},{"id":41,"x":137,"y":0,"width":17,"height":39,"xoffset":2,"yoffset":1,"xadvance":19,"page":0,"chnl":0},{"id":40,"x":154,"y":0,"width":16,"height":39,"xoffset":3,"yoffset":1,"xadvance":19,"page":0,"chnl":0},{"id":127,"x":170,"y":0,"width":26,"height":38,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":64,"x":196,"y":0,"width":28,"height":37,"xoffset":-3,"yoffset":3,"xadvance":19,"page":0,"chnl":0},{"id":81,"x":224,"y":0,"width":26,"height":37,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":92,"x":250,"y":0,"width":24,"height":36,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":47,"x":274,"y":0,"width":24,"height":36,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":121,"x":298,"y":0,"width":25,"height":35,"xoffset":-2,"yoffset":7,"xadvance":19,"page":0,"chnl":0},{"id":113,"x":323,"y":0,"width":25,"height":35,"xoffset":-2,"yoffset":7,"xadvance":19,"page":0,"chnl":0},{"id":112,"x":348,"y":0,"width":25,"height":35,"xoffset":-1,"yoffset":7,"xadvance":19,"page":0,"chnl":0},{"id":103,"x":373,"y":0,"width":25,"height":35,"xoffset":-2,"yoffset":7,"xadvance":19,"page":0,"chnl":0},{"id":108,"x":398,"y":0,"width":25,"height":34,"xoffset":-3,"yoffset":1,"xadvance":19,"page":0,"chnl":0},{"id":107,"x":423,"y":0,"width":24,"height":34,"xoffset":0,"yoffset":1,"xadvance":19,"page":0,"chnl":0},{"id":105,"x":447,"y":0,"width":25,"height":34,"xoffset":-2,"yoffset":1,"xadvance":19,"page":0,"chnl":0},{"id":104,"x":472,"y":0,"width":23,"height":34,"xoffset":-1,"yoffset":1,"xadvance":19,"page":0,"chnl":0},{"id":102,"x":0,"y":42,"width":24,"height":34,"xoffset":-1,"yoffset":1,"xadvance":19,"page":0,"chnl":0},{"id":100,"x":24,"y":42,"width":25,"height":34,"xoffset":-2,"yoffset":1,"xadvance":19,"page":0,"chnl":0},{"id":98,"x":49,"y":42,"width":25,"height":34,"xoffset":-1,"yoffset":1,"xadvance":19,"page":0,"chnl":0},{"id":38,"x":74,"y":42,"width":28,"height":33,"xoffset":-3,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":35,"x":102,"y":42,"width":29,"height":33,"xoffset":-4,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":63,"x":131,"y":42,"width":22,"height":33,"xoffset":0,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":33,"x":153,"y":42,"width":13,"height":33,"xoffset":4,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":48,"x":166,"y":42,"width":25,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":57,"x":191,"y":42,"width":25,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":56,"x":216,"y":42,"width":25,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":55,"x":241,"y":42,"width":25,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":54,"x":266,"y":42,"width":24,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":53,"x":290,"y":42,"width":25,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":52,"x":315,"y":42,"width":26,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":51,"x":341,"y":42,"width":24,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":50,"x":365,"y":42,"width":25,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":49,"x":390,"y":42,"width":23,"height":33,"xoffset":0,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":116,"x":413,"y":42,"width":25,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":90,"x":438,"y":42,"width":26,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":89,"x":464,"y":42,"width":26,"height":33,"xoffset":-3,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":88,"x":0,"y":76,"width":28,"height":33,"xoffset":-3,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":87,"x":28,"y":76,"width":28,"height":33,"xoffset":-4,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":86,"x":56,"y":76,"width":26,"height":33,"xoffset":-3,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":85,"x":82,"y":76,"width":25,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":84,"x":107,"y":76,"width":27,"height":33,"xoffset":-3,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":83,"x":134,"y":76,"width":25,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":82,"x":159,"y":76,"width":26,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":80,"x":185,"y":76,"width":24,"height":33,"xoffset":-1,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":79,"x":209,"y":76,"width":26,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":78,"x":235,"y":76,"width":25,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":77,"x":260,"y":76,"width":27,"height":33,"xoffset":-3,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":76,"x":287,"y":76,"width":24,"height":33,"xoffset":-1,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":75,"x":311,"y":76,"width":26,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":74,"x":337,"y":76,"width":23,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":73,"x":360,"y":76,"width":23,"height":33,"xoffset":-1,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":72,"x":383,"y":76,"width":25,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":71,"x":408,"y":76,"width":26,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":70,"x":434,"y":76,"width":24,"height":33,"xoffset":-1,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":69,"x":458,"y":76,"width":24,"height":33,"xoffset":-1,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":68,"x":482,"y":76,"width":25,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":67,"x":0,"y":109,"width":25,"height":33,"xoffset":-2,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":66,"x":25,"y":109,"width":25,"height":33,"xoffset":-1,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":65,"x":50,"y":109,"width":27,"height":33,"xoffset":-3,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":37,"x":77,"y":109,"width":27,"height":32,"xoffset":-3,"yoffset":3,"xadvance":19,"page":0,"chnl":0},{"id":59,"x":104,"y":109,"width":16,"height":31,"xoffset":2,"yoffset":8,"xadvance":19,"page":0,"chnl":0},{"id":122,"x":120,"y":109,"width":23,"height":28,"xoffset":-1,"yoffset":7,"xadvance":19,"page":0,"chnl":0},{"id":120,"x":143,"y":109,"width":26,"height":28,"xoffset":-3,"yoffset":7,"xadvance":19,"page":0,"chnl":0},{"id":119,"x":169,"y":109,"width":28,"height":28,"xoffset":-4,"yoffset":7,"xadvance":19,"page":0,"chnl":0},{"id":118,"x":197,"y":109,"width":25,"height":28,"xoffset":-2,"yoffset":7,"xadvance":19,"page":0,"chnl":0},{"id":117,"x":222,"y":109,"width":23,"height":28,"xoffset":-1,"yoffset":7,"xadvance":19,"page":0,"chnl":0},{"id":115,"x":245,"y":109,"width":23,"height":28,"xoffset":-1,"yoffset":7,"xadvance":19,"page":0,"chnl":0},{"id":114,"x":268,"y":109,"width":22,"height":28,"xoffset":2,"yoffset":7,"xadvance":19,"page":0,"chnl":0},{"id":111,"x":290,"y":109,"width":25,"height":28,"xoffset":-2,"yoffset":7,"xadvance":19,"page":0,"chnl":0},{"id":110,"x":315,"y":109,"width":23,"height":28,"xoffset":-1,"yoffset":7,"xadvance":19,"page":0,"chnl":0},{"id":109,"x":338,"y":109,"width":27,"height":28,"xoffset":-2,"yoffset":7,"xadvance":19,"page":0,"chnl":0},{"id":99,"x":365,"y":109,"width":24,"height":28,"xoffset":-1,"yoffset":7,"xadvance":19,"page":0,"chnl":0},{"id":97,"x":389,"y":109,"width":25,"height":28,"xoffset":-2,"yoffset":7,"xadvance":19,"page":0,"chnl":0},{"id":43,"x":414,"y":109,"width":27,"height":27,"xoffset":-3,"yoffset":6,"xadvance":19,"page":0,"chnl":0},{"id":58,"x":441,"y":109,"width":14,"height":27,"xoffset":4,"yoffset":8,"xadvance":19,"page":0,"chnl":0},{"id":101,"x":455,"y":109,"width":25,"height":27,"xoffset":-2,"yoffset":8,"xadvance":19,"page":0,"chnl":0},{"id":62,"x":480,"y":109,"width":27,"height":25,"xoffset":-3,"yoffset":8,"xadvance":19,"page":0,"chnl":0},{"id":60,"x":0,"y":142,"width":27,"height":25,"xoffset":-3,"yoffset":8,"xadvance":19,"page":0,"chnl":0},{"id":42,"x":27,"y":142,"width":23,"height":24,"xoffset":-1,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":61,"x":50,"y":142,"width":27,"height":20,"xoffset":-3,"yoffset":10,"xadvance":19,"page":0,"chnl":0},{"id":94,"x":77,"y":142,"width":26,"height":19,"xoffset":-3,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":44,"x":103,"y":142,"width":16,"height":19,"xoffset":2,"yoffset":20,"xadvance":19,"page":0,"chnl":0},{"id":39,"x":119,"y":142,"width":13,"height":19,"xoffset":4,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":34,"x":132,"y":142,"width":19,"height":19,"xoffset":1,"yoffset":2,"xadvance":19,"page":0,"chnl":0},{"id":96,"x":151,"y":142,"width":16,"height":16,"xoffset":0,"yoffset":-1,"xadvance":19,"page":0,"chnl":0},{"id":126,"x":167,"y":142,"width":27,"height":15,"xoffset":-3,"yoffset":12,"xadvance":19,"page":0,"chnl":0},{"id":46,"x":194,"y":142,"width":14,"height":15,"xoffset":4,"yoffset":20,"xadvance":19,"page":0,"chnl":0},{"id":95,"x":208,"y":142,"width":29,"height":13,"xoffset":-4,"yoffset":30,"xadvance":19,"page":0,"chnl":0},{"id":45,"x":237,"y":142,"width":18,"height":13,"xoffset":2,"yoffset":15,"xadvance":19,"page":0,"chnl":0}],"kernings":[],"info":{"face":"DejaVu Sans Mono","size":32,"bold":0,"italic":0,"charset":"","unicode":0,"stretchH":100,"smooth":1,"aa":1,"padding":[4,4,4,4],"spacing":[-8,-8]},"common":{"lineHeight":38,"base":30,"scaleW":512,"scaleH":512,"pages":1,"packed":0}}
Binary file added DejaVu-sdf.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion OrbitControls.js
Original file line number Diff line number Diff line change
Expand Up @@ -933,7 +933,7 @@ THREE.OrbitControls = function ( object, domElement ) {
scope.domElement.addEventListener( 'touchend', onTouchEnd, false );
scope.domElement.addEventListener( 'touchmove', onTouchMove, false );

window.addEventListener( 'keydown', onKeyDown, false );
// window.addEventListener( 'keydown', onKeyDown, false );

// force an update at start

Expand Down
90 changes: 90 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
<h1 align="center">Exoland</h1>
<p align="center"><b>An interface for the <a href="https://github.com/exokitxr/exokit">Exokit Engine</a>.</b></p>

<p align="center">
<a href="https://github.com/exokitxr/exoland/releases"><img src="https://img.shields.io/github/downloads/exokitxr/exoland/total.svg"></a>
<a href="https://www.npmjs.com/package/exokit-exoland"><img src="https://img.shields.io/npm/v/exokit-exoland.svg"></a>
<a href="https://github.com/exokitxr/exoland/issues"><img src="https://img.shields.io/github/issues/exokitxr/exoland.svg"></a>
<a href="https://github.com/exokitxr/exoland"><img src="https://img.shields.io/github/forks/exokitxr/exoland.svg"></a>
<a href="https://github.com/exokitxr/exoland"><img src="https://img.shields.io/github/stars/exokitxr/exoland.svg"></a>
<a href="https://twitter.com/exokitxr"><img src="https://img.shields.io/twitter/follow/exokitxr.svg?style=social"></a>
</p>

<div align="center">
<a href="https://exokit.org">Site</a>
&mdash;
<a href="https://exokit.org/docs/">Docs</a>
&mdash;
<a href="https://discordapp.com/invite/Apk6cZN">Discord</a>
&mdash;
<a href="https://twitter.com/exokitxr">Twitter</a>
&mdash;
<a href="http://eepurl.com/dFiLMz">Email List</a>
</div>

## Examples

<a href="https://youtu.be/cd_DEwCDF6U"><img alt="Hands Reality Tab" target="_blank" src="https://user-images.githubusercontent.com/29695350/58765576-07fb0700-853a-11e9-9d16-42abbef42014.PNG" height="190" width="32%"></a>
<a href="https://youtu.be/b-UKSg0QCRE"><img alt="Live Reload Magic Leap" target="_blank" src="https://user-images.githubusercontent.com/29695350/58765576-07fb0700-853a-11e9-9d16-42abbef42014.PNG" height="190" width="32%"></a>
<a href="https://youtu.be/O1xA1r5SZUM"><img alt="Tutorial Reality Tab" target="_blank" src="https://user-images.githubusercontent.com/29695350/58765576-07fb0700-853a-11e9-9d16-42abbef42014.PNG" height="190" width="32%"></a>

<a href="https://www.youtube.com/watch?v=m_QntqZmd_Q"><img alt="Reality Projection with HTC Vive and Magic Leap" target="_blank" src="https://user-images.githubusercontent.com/29695350/58765577-09c4ca80-853a-11e9-8db2-46e26a9aad8b.PNG" height="190" width="32%"></a>
<a href="https://youtu.be/i0MXRCNkdB4"><img alt="Emukit" target="_blank" src="https://user-images.githubusercontent.com/29695350/58765577-09c4ca80-853a-11e9-8db2-46e26a9aad8b.PNG" height="190" width="32%"></a>
<a href="https://exokit.org/"><img alt="Various Exokit Apps" target="_blank" src="https://user-images.githubusercontent.com/29695350/58765577-09c4ca80-853a-11e9-8db2-46e26a9aad8b.PNG" height="190" width="32%"></a>

*Find more examples on [YouTube](https://www.youtube.com/channel/UC87Q7_5ooY8FSLwOec52ZPQ).*


## Overview

Exoland **enables developers to build XR experiences with ease** by having a seamless interface to the Exokit Engine. Exoland prefers using GUIs instead of command lines with difficult to remember arguments to use the functionality you want.

Exoland uses the [Exokit Engine](https://github.com/exokitxr/exokit), which is written on top of Node and emulates a web browser, providing native hooks for WebGL, WebGL2, WebVR, WebXR, WebAudio, and other APIs used in immersive experiences.

:eyeglasses: **Exokit Engine currently targets the following platforms**:
* OpenVR Desktop VR (Steam compatible)
* HTC Vive
* Valve Index *
* Oculus Desktop (Oculus Rift, Oculus Rift S)
* Oculus Mobile (Oculus Quest, Oculus Go, GearVR)
* Magic Leap
* iOS ARKit *
* Android ARCore *
* Google VR (Daydream / Cardboard / Mirage Solo) *
* Hololens / Hololens 2 *
* any XR device, start a [pull request](https://github.com/exokitxr/exokit/compare) to the Exokit Engine with a native binding if it isn't listed here! *

\* not supported yet

:electric_plug: **Exokit Engine powers experiences built with**:
* Three.js
* Unity
* Pixi.js
* Babylon.js
* A-Frame
* Custom WebGL frameworks
* WebAssembly, TypeScript, and any language that transpiles to JavaScript
* Unity WebVR export *
* SteamVR *
* any 3d web framework, start a [pull request](https://github.com/exokitxr/exokit/compare) to the Exokit Engine if a 3d web framework isn't currently supported! *

\* not supported yet

## Quickstart

### Desktop
<h4><a href="https://get.exokit.org">Download and install Exoland for current OS</a></h4>

### Local Development

```sh
git clone https://github.com/exokitxr/exoland.git
cd exoland
npm install
npm build
```

## Stay in Touch

- [Join our Discord](https://discord.gg/Apk6cZN) for discussions.
- [Follow @exokitxr on Twitter](https://twitter.com/exokitxr) for updates.
Binary file added arrow-down.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arrow-left.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arrow-right.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arrow-up.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added background.mp3
Binary file not shown.
Loading