Commit e1859fe9 authored by Felix Kolja Hummel's avatar Felix Kolja Hummel
Browse files

initial commit

parents
.DS_Store
*.sw[mnop]
# Logs
logs
*.log
npm-debug.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# node-waf configuration
.lock-wscript
# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules
jspm_packages
# Optional npm cache directory
.npm
# Optional REPL history
.node_repl_history
The MIT License
Copyright © 2015 A-Frame.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
# A-Frame Boilerplate
Boilerplate for creating WebVR scenes with [A-Frame](https://aframe.io).
Alternatively, check out the [A-Frame Starter on
glitch.com](https://glitch.com/~aframe) for a more interactive way on getting
started.
## Getting Started
There are two easy options for obtaining this A-Frame scene. It's then up to you to make it your own!
### <sup>Option 1:</sup> Download the ZIP kit 📦
[<img src="http://i.imgur.com/UVPZoM0.png" width="200">](https://github.com/aframevr/aframe-boilerplate/archive/master.zip)
After you have __[downloaded and extracted this `.zip` file](https://github.com/aframevr/aframe-boilerplate/archive/master.zip)__ containing the contents of this repo, open the resulting directory, and you'll be have your scene ready in these few steps:
npm install && npm start
open http://localhost:3000/
<hr>
### <small><sup>Option 2:</sup> Fork this Git repo 🍴🐙
Alternatively, you can __[fork this repo](https://github.com/aframevr/aframe-boilerplate/fork)__ to get started, if you'd like to maintain a Git workflow.
After you have __[forked this repo](https://github.com/aframevr/aframe-boilerplate/fork)__, clone a copy of your fork locally and you'll be have your scene ready in these few steps:
git clone https://github.com/aframevr/aframe-boilerplate.git
cd aframe-boilerplate && rm -rf .git && npm install && npm start
open http://localhost:3000/
> :iphone: **Mobile pro tip:** Upon starting the development server, the URL will be logged to the console. Load that URL from a browser on your mobile device. (If your mobile phone and computer are not on the same LAN, consider using [ngrok](https://ngrok.com/) for local development and testing. [Browsersync](https://www.browsersync.io/) is also worth a gander.)
<hr>
### <small><sup>Option 3:</sup> Fork this CodePen example 🍴💾✒️
Or, you can simply __[fork this CodePen example](http://codepen.io/team/mozvr/pen/BjygdO?editors=100)__ to dive right in. Enjoy!
## Publishing your scene
If you don't already know, GitHub offers free and awesome publishing of static sites through __[GitHub Pages](https://pages.github.com/)__.
To publish your scene to your personal GitHub Pages:
npm run deploy
And, it'll now be live at __http://`your_username`.github.io/__ :)
<hr>
To know which GitHub repo to deploy to, the `deploy` script first looks at the optional [`repository` key](https://docs.npmjs.com/files/package.json#repository) in the [`package.json` file](package.json) (see [npm docs](https://docs.npmjs.com/files/package.json#repository) for sample usage). If the `repository` key is missing, the script falls back to using the local git repo's remote origin URL (you can run the local command `git remote -v` to see all your remotes; also, you may refer to the [GitHub docs](https://help.github.com/articles/about-remote-repositories/) for more information).
<hr>
## Still need Help?
### Installation
First make sure you have Node installed.
On Mac OS X, it's recommended to use [Homebrew](http://brew.sh/) to install Node + [npm](https://www.npmjs.com):
brew install node
To install the Node dependencies:
npm install
### Local Development
To serve the site from a simple Node development server:
npm start
Then launch the site from your favourite browser:
[__http://localhost:3000/__](http://localhost:3000/)
If you wish to serve the site from a different port:
PORT=8000 npm start
## License
This program is free software and is distributed under an [MIT License](LICENSE).
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello, World! - A-Frame</title>
<meta name="description" content="Hello, World! - A-Frame">
<script src="https://aframe.io/releases/0.5.0/aframe.min.js"></script>
</head>
<body>
<a-scene>
<a-box position="-1 0.5 -3" rotation="0 45 0" color="#4CC3D9"></a-box>
<a-sphere position="0 1.25 -5" radius="1.25" color="#EF2D5E"></a-sphere>
<a-cylinder position="1 0.75 -3" radius="0.5" height="1.5" color="#FFC65D"></a-cylinder>
<a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4"></a-plane>
<a-sky color="#ECECEC"></a-sky>
</a-scene>
</body>
</html>
This diff is collapsed.
{
"name": "DTxVR",
"description": "Project",
"version": "0.1.0",
"license": "MIT",
"scripts": {
"start": "node ./server/easyrtc-server.js",
"deploy": "ghpages",
"ghpages": "ghpages"
},
"devDependencies": {
"budo": "^7.0.0",
"ghpages": "0.0.3"
},
"keywords": [
"aframe",
"aframe-example",
"webvr",
"vr"
],
"dependencies": {
"networked-aframe": "^0.6.1"
}
}
// Load required modules
var http = require("http"); // http server core module
var express = require("express"); // web framework external module
var serveStatic = require('serve-static'); // serve static files
var socketIo = require("socket.io"); // web socket external module
var easyrtc = require("easyrtc"); // EasyRTC external module
// Set process name
process.title = "node-easyrtc";
// Get port or default to 8080
var port = process.env.PORT || 8080;
// Setup and configure Express http server. Expect a subfolder called "static" to be the web root.
var app = express();
app.use(serveStatic('server/static', {'index': ['index.html']}));
// Start Express http server
var webServer = http.createServer(app);
// Start Socket.io so it attaches itself to Express server
var socketServer = socketIo.listen(webServer, {"log level":1});
var myIceServers = [
{"url":"stun:stun.l.google.com:19302"},
{"url":"stun:stun1.l.google.com:19302"},
{"url":"stun:stun2.l.google.com:19302"},
{"url":"stun:stun3.l.google.com:19302"}
// {
// "url":"turn:[ADDRESS]:[PORT]",
// "username":"[USERNAME]",
// "credential":"[CREDENTIAL]"
// },
// {
// "url":"turn:[ADDRESS]:[PORT][?transport=tcp]",
// "username":"[USERNAME]",
// "credential":"[CREDENTIAL]"
// }
];
easyrtc.setOption("appIceServers", myIceServers);
easyrtc.setOption("logLevel", "debug");
easyrtc.setOption("demosEnable", false);
// Overriding the default easyrtcAuth listener, only so we can directly access its callback
easyrtc.events.on("easyrtcAuth", function(socket, easyrtcid, msg, socketCallback, callback) {
easyrtc.events.defaultListeners.easyrtcAuth(socket, easyrtcid, msg, socketCallback, function(err, connectionObj){
if (err || !msg.msgData || !msg.msgData.credential || !connectionObj) {
callback(err, connectionObj);
return;
}
connectionObj.setField("credential", msg.msgData.credential, {"isShared":false});
console.log("["+easyrtcid+"] Credential saved!", connectionObj.getFieldValueSync("credential"));
callback(err, connectionObj);
});
});
// To test, lets print the credential to the console for every room join!
easyrtc.events.on("roomJoin", function(connectionObj, roomName, roomParameter, callback) {
console.log("["+connectionObj.getEasyrtcid()+"] Credential retrieved!", connectionObj.getFieldValueSync("credential"));
easyrtc.events.defaultListeners.roomJoin(connectionObj, roomName, roomParameter, callback);
});
// Start EasyRTC server
var rtc = easyrtc.listen(app, socketServer, null, function(err, rtcRef) {
console.log("Initiated");
rtcRef.events.on("roomCreate", function(appObj, creatorConnectionObj, roomName, roomOptions, callback) {
console.log("roomCreate fired! Trying to create: " + roomName);
appObj.events.defaultListeners.roomCreate(appObj, creatorConnectionObj, roomName, roomOptions, callback);
});
});
//listen on port
webServer.listen(port, function () {
console.log('listening on http://localhost:' + port);
});
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>360 Image Example — Networked-Aframe</title>
<meta name="description" content="360 Image Example — Networked-Aframe">
<script src="https://aframe.io/releases/0.7.0/aframe.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.4.5/socket.io.min.js"></script>
<script src="/easyrtc/easyrtc.js"></script>
<script src="/build.js"></script>
<script>window.NAF || document.write('<script src="https://unpkg.com/networked-aframe/dist/networked-aframe.min.js">\x3C/script>')</script>
<script src="https://unpkg.com/aframe-randomizer-components@^3.0.1/dist/aframe-randomizer-components.min.js"></script>
<script src="https://unpkg.com/aframe-particle-system-component@1.0.5/dist/aframe-particle-system-component.min.js"></script>
<script src="/js/spawn-in-circle.component.js"></script>
</head>
<body>
<a-scene networked-scene="
room: 360;
debug: true;
">
<a-assets>
<!-- Avatar -->
<template id="avatar-template">
<a-entity class="avatar">
<a-sphere class="head"
color="#ffffff"
scale="0.45 0.5 0.4"
></a-sphere>
<a-entity class="face"
position="0 0.05 0"
>
<a-sphere class="eye"
color="#efefef"
position="0.16 0.1 -0.35"
scale="0.12 0.12 0.12"
>
<a-sphere class="pupil"
color="#000"
position="0 0 -1"
scale="0.2 0.2 0.2"
></a-sphere>
</a-sphere>
<a-sphere class="eye"
color="#efefef"
position="-0.16 0.1 -0.35"
scale="0.12 0.12 0.12"
>
<a-sphere class="pupil"
color="#000"
position="0 0 -1"
scale="0.2 0.2 0.2"
></a-sphere>
</a-sphere>
</a-entity>
</a-entity>
</template>
<!-- /Templates -->
</a-assets>
<a-entity id="player" networked="template:#avatar-template;attachTemplateToLocal:false;" camera="userHeight: 1.6" spawn-in-circle="radius:3" wasd-controls look-controls>
<a-sphere class="head"
visible="false"
random-color
></a-sphere>
</a-entity>
<a-sky src="img/puydesancy.jpg" rotation="0 -130 0"></a-sky>
</a-scene>
<script>
// Define custom schema for syncing avatar color, set by random-color
NAF.schemas.add({
template: '#avatar-template',
components: [
'position',
'rotation',
{
selector: '.head',
component: 'material'
}
]
});
</script>
</body>
</html>
\ No newline at end of file
info face="Advert Regular" size=63 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=6,6,6,6 spacing=-12,-12
common lineHeight=75 base=61 scaleW=512 scaleH=512 pages=1 packed=0
page id=0 file="asaturdaynight.png"
chars count=89
char id=0 x=245 y=438 width=57 height=63 xoffset=-3 yoffset=4 xadvance=50 page=0 chnl=0
char id=32 x=0 y=0 width=0 height=0 xoffset=-6 yoffset=0 xadvance=16 page=0 chnl=0
char id=33 x=398 y=149 width=27 height=61 xoffset=-5 yoffset=7 xadvance=22 page=0 chnl=0
char id=34 x=118 y=438 width=36 height=33 xoffset=-5 yoffset=7 xadvance=32 page=0 chnl=0
char id=35 x=376 y=391 width=46 height=45 xoffset=-5 yoffset=7 xadvance=35 page=0 chnl=0
char id=36 x=425 y=149 width=38 height=61 xoffset=-5 yoffset=7 xadvance=32 page=0 chnl=0
char id=37 x=0 y=211 width=50 height=61 xoffset=-5 yoffset=7 xadvance=41 page=0 chnl=0
char id=39 x=486 y=332 width=23 height=33 xoffset=-5 yoffset=7 xadvance=17 page=0 chnl=0
char id=40 x=180 y=0 width=37 height=76 xoffset=-5 yoffset=4 xadvance=30 page=0 chnl=0
char id=41 x=0 y=0 width=38 height=77 xoffset=-5 yoffset=4 xadvance=30 page=0 chnl=0
char id=42 x=83 y=438 width=35 height=35 xoffset=-5 yoffset=12 xadvance=36 page=0 chnl=0
char id=43 x=422 y=391 width=42 height=42 xoffset=-5 yoffset=18 xadvance=32 page=0 chnl=0
char id=44 x=154 y=438 width=27 height=32 xoffset=-5 yoffset=44 xadvance=22 page=0 chnl=0
char id=45 x=208 y=438 width=37 height=23 xoffset=-5 yoffset=27 xadvance=30 page=0 chnl=0
char id=46 x=181 y=438 width=27 height=25 xoffset=-5 yoffset=43 xadvance=22 page=0 chnl=0
char id=47 x=459 y=77 width=43 height=66 xoffset=-5 yoffset=6 xadvance=32 page=0 chnl=0
char id=48 x=50 y=211 width=44 height=60 xoffset=-5 yoffset=8 xadvance=37 page=0 chnl=0
char id=49 x=94 y=211 width=32 height=60 xoffset=-5 yoffset=7 xadvance=25 page=0 chnl=0
char id=50 x=126 y=211 width=43 height=60 xoffset=-5 yoffset=7 xadvance=38 page=0 chnl=0
char id=51 x=88 y=149 width=43 height=61 xoffset=-5 yoffset=7 xadvance=39 page=0 chnl=0
char id=52 x=169 y=211 width=48 height=60 xoffset=-5 yoffset=7 xadvance=41 page=0 chnl=0
char id=53 x=217 y=211 width=45 height=60 xoffset=-5 yoffset=7 xadvance=41 page=0 chnl=0
char id=54 x=262 y=211 width=44 height=60 xoffset=-5 yoffset=7 xadvance=38 page=0 chnl=0
char id=55 x=306 y=211 width=43 height=60 xoffset=-5 yoffset=7 xadvance=35 page=0 chnl=0
char id=56 x=349 y=211 width=46 height=60 xoffset=-5 yoffset=7 xadvance=40 page=0 chnl=0
char id=57 x=395 y=211 width=44 height=60 xoffset=-5 yoffset=7 xadvance=37 page=0 chnl=0
char id=58 x=216 y=391 width=28 height=47 xoffset=-5 yoffset=21 xadvance=22 page=0 chnl=0
char id=59 x=221 y=332 width=28 height=55 xoffset=-5 yoffset=21 xadvance=22 page=0 chnl=0
char id=60 x=464 y=391 width=42 height=42 xoffset=-5 yoffset=19 xadvance=38 page=0 chnl=0
char id=61 x=42 y=438 width=41 height=37 xoffset=-5 yoffset=21 xadvance=32 page=0 chnl=0
char id=62 x=0 y=438 width=42 height=42 xoffset=-5 yoffset=19 xadvance=38 page=0 chnl=0
char id=63 x=463 y=149 width=42 height=61 xoffset=-5 yoffset=7 xadvance=33 page=0 chnl=0
char id=64 x=164 y=332 width=57 height=59 xoffset=-5 yoffset=9 xadvance=49 page=0 chnl=0
char id=65 x=175 y=77 width=54 height=71 xoffset=-5 yoffset=8 xadvance=48 page=0 chnl=0
char id=66 x=217 y=0 width=49 height=72 xoffset=-5 yoffset=7 xadvance=42 page=0 chnl=0
char id=67 x=0 y=149 width=43 height=62 xoffset=-5 yoffset=7 xadvance=36 page=0 chnl=0
char id=68 x=266 y=0 width=52 height=72 xoffset=-5 yoffset=7 xadvance=44 page=0 chnl=0
char id=69 x=131 y=149 width=45 height=61 xoffset=-5 yoffset=7 xadvance=37 page=0 chnl=0
char id=70 x=318 y=0 width=48 height=72 xoffset=-5 yoffset=7 xadvance=41 page=0 chnl=0
char id=71 x=439 y=211 width=46 height=60 xoffset=-5 yoffset=8 xadvance=37 page=0 chnl=0
char id=72 x=366 y=0 width=60 height=72 xoffset=-5 yoffset=7 xadvance=51 page=0 chnl=0
char id=73 x=0 y=272 width=42 height=60 xoffset=-5 yoffset=7 xadvance=35 page=0 chnl=0
char id=74 x=426 y=0 width=42 height=72 xoffset=-5 yoffset=7 xadvance=35 page=0 chnl=0
char id=75 x=286 y=77 width=58 height=70 xoffset=-5 yoffset=7 xadvance=50 page=0 chnl=0
char id=76 x=42 y=272 width=46 height=60 xoffset=-5 yoffset=7 xadvance=42 page=0 chnl=0
char id=77 x=344 y=77 width=67 height=69 xoffset=-5 yoffset=7 xadvance=62 page=0 chnl=0
char id=78 x=229 y=77 width=57 height=71 xoffset=-5 yoffset=7 xadvance=50 page=0 chnl=0
char id=79 x=176 y=149 width=45 height=61 xoffset=-5 yoffset=7 xadvance=37 page=0 chnl=0
char id=80 x=0 y=77 width=49 height=72 xoffset=-5 yoffset=7 xadvance=42 page=0 chnl=0
char id=81 x=49 y=77 width=46 height=72 xoffset=-5 yoffset=7 xadvance=38 page=0 chnl=0
char id=82 x=411 y=77 width=48 height=68 xoffset=-5 yoffset=8 xadvance=38 page=0 chnl=0
char id=83 x=43 y=149 width=45 height=62 xoffset=-5 yoffset=7 xadvance=35 page=0 chnl=0
char id=84 x=221 y=149 width=45 height=61 xoffset=-5 yoffset=8 xadvance=37 page=0 chnl=0
char id=85 x=266 y=149 width=50 height=61 xoffset=-5 yoffset=7 xadvance=41 page=0 chnl=0
char id=86 x=88 y=272 width=49 height=60 xoffset=-5 yoffset=7 xadvance=38 page=0 chnl=0
char id=87 x=137 y=272 width=62 height=60 xoffset=-5 yoffset=7 xadvance=52 page=0 chnl=0
char id=88 x=199 y=272 width=51 height=60 xoffset=-5 yoffset=7 xadvance=42 page=0 chnl=0
char id=89 x=95 y=77 width=51 height=72 xoffset=-5 yoffset=7 xadvance=43 page=0 chnl=0
char id=90 x=250 y=272 width=48 height=60 xoffset=-5 yoffset=7 xadvance=43 page=0 chnl=0
char id=91 x=38 y=0 width=36 height=76 xoffset=-5 yoffset=4 xadvance=33 page=0 chnl=0
char id=93 x=74 y=0 width=36 height=76 xoffset=-5 yoffset=4 xadvance=33 page=0 chnl=0
char id=97 x=244 y=391 width=44 height=46 xoffset=-5 yoffset=21 xadvance=35 page=0 chnl=0
char id=98 x=373 y=272 width=44 height=59 xoffset=-5 yoffset=8 xadvance=32 page=0 chnl=0
char id=99 x=385 y=332 width=38 height=47 xoffset=-5 yoffset=20 xadvance=30 page=0 chnl=0
char id=100 x=417 y=272 width=44 height=59 xoffset=-5 yoffset=8 xadvance=38 page=0 chnl=0
char id=101 x=249 y=332 width=41 height=48 xoffset=-5 yoffset=20 xadvance=32 page=0 chnl=0
char id=102 x=468 y=0 width=35 height=72 xoffset=-5 yoffset=7 xadvance=26 page=0 chnl=0
char id=103 x=461 y=272 width=44 height=59 xoffset=-5 yoffset=21 xadvance=36 page=0 chnl=0
char id=104 x=298 y=272 width=45 height=60 xoffset=-5 yoffset=7 xadvance=37 page=0 chnl=0
char id=105 x=0 y=332 width=28 height=59 xoffset=-5 yoffset=8 xadvance=23 page=0 chnl=0
char id=106 x=146 y=77 width=29 height=72 xoffset=-5 yoffset=7 xadvance=24 page=0 chnl=0
char id=107 x=28 y=332 width=47 height=59 xoffset=-5 yoffset=8 xadvance=38 page=0 chnl=0
char id=108 x=343 y=272 width=30 height=60 xoffset=-5 yoffset=7 xadvance=21 page=0 chnl=0
char id=109 x=423 y=332 width=63 height=47 xoffset=-5 yoffset=21 xadvance=54 page=0 chnl=0
char id=110 x=0 y=391 width=46 height=47 xoffset=-5 yoffset=21 xadvance=38 page=0 chnl=0
char id=111 x=46 y=391 width=41 height=47 xoffset=-5 yoffset=21 xadvance=33 page=0 chnl=0
char id=112 x=75 y=332 width=44 height=59 xoffset=-5 yoffset=21 xadvance=37 page=0 chnl=0
char id=113 x=119 y=332 width=45 height=59 xoffset=-5 yoffset=21 xadvance=36 page=0 chnl=0
char id=114 x=87 y=391 width=39 height=47 xoffset=-5 yoffset=21 xadvance=31 page=0 chnl=0
char id=115 x=290 y=332 width=41 height=48 xoffset=-5 yoffset=20 xadvance=35 page=0 chnl=0
char id=116 x=316 y=149 width=35 height=61 xoffset=-5 yoffset=7 xadvance=25 page=0 chnl=0
char id=117 x=126 y=391 width=46 height=47 xoffset=-5 yoffset=21 xadvance=37 page=0 chnl=0
char id=118 x=172 y=391 width=44 height=47 xoffset=-5 yoffset=20 xadvance=34 page=0 chnl=0
char id=119 x=331 y=332 width=54 height=48 xoffset=-5 yoffset=20 xadvance=44 page=0 chnl=0
char id=120 x=288 y=391 width=44 height=46 xoffset=-5 yoffset=21 xadvance=38 page=0 chnl=0
char id=121 x=351 y=149 width=47 height=61 xoffset=-5 yoffset=20 xadvance=37 page=0 chnl=0
char id=122 x=332 y=391 width=44 height=46 xoffset=-5 yoffset=21 xadvance=38 page=0 chnl=0
char id=123 x=110 y=0 width=35 height=76 xoffset=-5 yoffset=4 xadvance=33 page=0 chnl=0
char id=125 x=145 y=0 width=35 height=76 xoffset=-5 yoffset=4 xadvance=33 page=0 chnl=0
kernings count=0
{
"accessors": {
"accessor_21": {
"bufferView": "bufferView_29",
"byteOffset": 0,
"byteStride": 0,
"componentType": 5123,
"count": 3024,
"type": "SCALAR"
},
"accessor_23": {
"bufferView": "bufferView_30",
"byteOffset": 0,
"byteStride": 12,
"componentType": 5126,
"count": 3024,
"max": [
0.0741576,
0.2018,
0.0762408
],
"min": [
-0.0789186,
-0.166983,
-0.10954
],
"type": "VEC3"
},
"accessor_25": {
"bufferView": "bufferView_30",
"byteOffset": 36288,
"byteStride": 12,
"componentType": 5126,
"count": 3024,
"max": [
0.999453,
0.995971,
0.999963
],
"min": [
-0.999859,
-0.994886,
-0.999894
],
"type": "VEC3"
},
"accessor_27": {
"bufferView": "bufferView_30",
"byteOffset": 72576,
"byteStride": 8,
"componentType": 5126,
"count": 3024,
"max": [
0.97908,
0.986406
],
"min": [
0.174955,
0.0117075
],
"type": "VEC2"
}
},
"animations": {},
"asset": {
"generator": "collada2gltf@cf6371beb0bdc18ba603378d5e40c966da53d385",
"premultipliedAlpha": true,
"profile": {
"api": "WebGL",
"version": "1.0.2"
},
"version": "1.0"
},
"bufferViews": {
"bufferView_29": {
"buffer": "avatar1-hand-left",
"byteLength": 6048,
"byteOffset": 0,
"target": 34963
},
"bufferView_30": {
"buffer": "avatar1-hand-left",
"byteLength": 96768,
"byteOffset": 6048,
"target": 34962
}
},
"buffers": {
"avatar1-hand-left": {
"byteLength": 102816,
"type": "arraybuffer",
"uri": "avatar1-hand-left.bin"
}
},
"extensionsUsed": [
"KHR_materials_common"
],
"images": {
"avatar1": {
"name": "avatar1",
"uri": "avatar1.jpg"
}
},
"materials": {
"matfinal-effect": {
"extensions": {
"KHR_materials_common": {
"doubleSided": false,
"jointCount": 0,
"technique": "LAMBERT",
"transparent": false,
"values": {
"ambient": [
0,
0,
0,
1
],
"diffuse": "texture_avatar1",
"emission": [
0,
0,
0,
1
]
}
}
},
"name": "matfinal"
}
},
"meshes": {
"hand-left-mesh": {
"name": "hand-left",
"primitives": [
{
"attributes": {
"NORMAL": "accessor_25",
"POSITION": "accessor_23",
"TEXCOORD_0": "accessor_27"
},
"indices": "accessor_21",
"material": "matfinal-effect",
"mode": 4
}
]
}