GitHub PullRequestReviewCommentEvent at 2014-12-29 07:31:44
Repository: three.js
Actor: kile
Payload: {"action":"created","comment":{"url":"https://api.github.com/repos/mrdoob/three.js/pulls/comments/22304426","id":22304426,"diff_hunk":"@@ -0,0 +1,309 @@\n+<!DOCTYPE html>\n+<html lang=\"en\">\n+\t<head>\n+\t\t<title>three.js webgl - buffergeometry - lines drawcalls</title>\n+\t\t<meta charset=\"utf-8\">\n+\t\t<meta name=\"viewport\" content=\"width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0\">\n+\t\t<style>\n+\t\t\tbody {\n+\t\t\t\tcolor: #cccccc;\n+\t\t\t\tfont-family:Monospace;\n+\t\t\t\tfont-size:13px;\n+\t\t\t\ttext-align:center;\n+\n+\t\t\t\tbackground-color: #000000;\n+\t\t\t\tmargin: 0px;\n+\t\t\t\toverflow: hidden;\n+\t\t\t}\n+\n+\t\t\t#info {\n+\t\t\t\tposition: absolute;\n+\t\t\t\ttop: 0px; width: 100%;\n+\t\t\t\tpadding: 5px;\n+\t\t\t}\n+\n+\t\t\ta {\n+\n+\t\t\t\tcolor: #0080ff;\n+\t\t\t}\n+\n+\t\t</style>\n+\t</head>\n+\t<body>\n+\n+\t\t<div id=\"container\"></div>\n+\t\t<div id=\"info\">\n+\t\t\t<a href=\"http://threejs.org\" target=\"_blank\">three.js</a> webgl - buffergeometry drawcalls - by <a href=\"https://twitter.com/fernandojsg\">fernandojsg</a>\n+\t\t</div>\n+\n+\t\t<script src=\"js/libs/dat.gui.min.js\"></script>\n+\t\t<script src=\"../build/three.min.js\"></script>\n+\t\t<script src=\"js/controls/OrbitControls.js\"></script>\n+\t\t<script src=\"js/libs/stats.min.js\"></script>\n+\n+\t\t<script>\n+\n+\t\t\tvar group;\n+\t\t\tvar container, stats;\n+\t        var particlesData = [];\n+\t\t\tvar camera, scene, renderer;\n+\t\t\tvar positions,colors;\n+\t\t\tvar pointCloud;\n+\t\t\tvar particlePositions;\n+\t\t\tvar linesMesh;\n+\n+\t\t\tvar maxParticleCount = 1000;\n+            var particleCount = 500;\n+\t\t\tvar r = 800;\n+\t\t\tvar rHalf = r / 2;\n+\n+\t\t\tvar effectController = {\n+\t\t\t\tshowDots: true,\n+\t\t\t\tshowLines: true,\n+\t\t\t\tminDistance: 150,\n+\t\t\t\tlimitConnections: false,\n+\t\t\t\tmaxConnections: 20,\n+\t\t\t\tparticleCount: 500\n+\t\t\t}\n+\n+\t\t\tinit();\n+\t\t\tanimate();\n+\n+\t\t\tfunction initGUI() {\n+\t\t\t\t\n+\t\t\t\tvar gui = new dat.GUI();\n+\t\t\t\t\n+\t\t\t\tgui.add( effectController, \"showDots\" ).onChange( function(value) {pointCloud.visible = value;} );\n+\t\t\t\tgui.add( effectController, \"showLines\" ).onChange( function(value) {linesMesh.visible = value; } );\n+\t\t\t\tgui.add( effectController, \"minDistance\", 10, 300 );\n+\t\t\t\tgui.add( effectController, \"limitConnections\" );\n+\t\t\t\tgui.add( effectController, \"maxConnections\", 0, 30,1 );\n+\t\t\t\tgui.add( effectController, \"particleCount\", 0, maxParticleCount,1 ).onChange(function(value) { \n+\t\t\t\t\tparticleCount = parseInt(value); \t\t       \n+\t\t\t\t\tparticles.drawcalls[0].count = particleCount;\n+\t\t\t\t});\n+\t\t\t\t\t\n+\t\t\t}\n+\n+\t\t\tfunction init() {\n+\n+\t\t\t\tinitGUI();\n+\n+\t\t\t\tcontainer = document.getElementById( 'container' );\n+\n+\t\t\t\t//\n+\n+\t\t\t\tcamera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 4000 );\n+\t\t\t\tcamera.position.z = 1750;\n+\n+\t\t\t\tcontrols = new THREE.OrbitControls( camera );\n+\t\t\t\tcontrols.damping = 0.2;\n+\t\t\t\tcontrols.addEventListener( 'change', render );\n+\n+\t\t\t\tscene = new THREE.Scene();\n+\t\n+\t\t\t\tgeometry = new THREE.BufferGeometry();\n+\t\t\t\tvar material = new THREE.LineBasicMaterial({ vertexColors: THREE.VertexColors });\n+\n+\t\t        var segments = maxParticleCount * maxParticleCount;\n+\n+\t\t\t\tpositions = new Float32Array( segments * 3 );\n+\t\t\t\tcolors = new Float32Array( segments * 3 );\n+\n+\t\t        var pMaterial = new THREE.PointCloudMaterial({\n+\t\t            color: 0xFFFFFF,\n+\t\t            size: 3,\n+\t\t            blending: THREE.AdditiveBlending,\n+\t\t            transparent: true,\n+\t\t            sizeAttenuation: false\n+\t\t        });\n+\n+\t\t\t\t//particles = new THREE.Geometry();\n+\t\t\t\tparticles = new THREE.BufferGeometry();\n+\t\t\t\tparticlePositions = new Float32Array( maxParticleCount * 3 );\n+\n+\t\t\t   \tfor ( var i = 0; i < maxParticleCount; i++ ) {\n+\n+\t\t\t\t\tvar x = Math.random() * r - r / 2;\n+\t\t\t\t\tvar y = Math.random() * r - r / 2;\n+\t\t\t\t\tvar z = Math.random() * r - r / 2;\n+\t\n+\t\t            particlePositions[ i * 3     ] = x;\n+\t\t\t\t\tparticlePositions[ i * 3 + 1 ] = y;\n+\t\t\t\t\tparticlePositions[ i * 3 + 2 ] = z;\n+\n+\t\t            // add it to the geometry\n+\t\t            particlesData.push({\n+\t\t            \tvelocity: new THREE.Vector3( -1 + Math.random() * 2, -1 + Math.random() * 2,  -1 + Math.random() * 2 ),\n+\t\t            \tnumConnections: 0\n+\t\t            });\n+\n+\t\t        }\n+\n+\t\t        particles.drawcalls.push( {\n+\t\t            start: 0,\n+\t\t            count: particleCount,\n+\t\t            index: 0\n+\t\t        } );\n+\n+\t\t\t\tparticles.addAttribute( 'position', new THREE.BufferAttribute( particlePositions, 3 ) );\n+\n+\t\t\t\t// create the particle system\n+\t\t        pointCloud = new THREE.PointCloud(\n+\t\t            particles,\n+\t\t            pMaterial);\n+\n+\n+\t\t        group = new THREE.Object3D();\n+\n+\t\t        // add it to the scene\n+\t\t        group.add(pointCloud);\n+\n+\t\t\t\tgeometry.addAttribute( 'position', new THREE.BufferAttribute( positions, 3 ) );\n+\t\t\t\tgeometry.addAttribute( 'color', new THREE.BufferAttribute( colors, 3 ) );\n+\n+\t\t\t\tgeometry.computeBoundingSphere();\n+\n+\t\t        geometry.drawcalls.push( {\n+\t\t            start: 0,\n+\t\t            count: 0,\n+\t\t            index: 0\n+\t\t        } );\n+\n+\t\t\t\tlinesMesh = new THREE.Line( geometry, material, THREE.LinePieces );\n+\t\t\t\tgroup.add( linesMesh );\n+\n+\t\t\t\tscene.add(group);\n+\t\t\t\t\n+\t\t\t\t//\n+\t\t\t\t\n+\t\t\t\trenderer = new THREE.WebGLRenderer( { antialias: true } );\n+\t\t        renderer.setPixelRatio( window.devicePixelRatio )\n+\t\t\t\trenderer.setSize( window.innerWidth, window.innerHeight );\n+\n+\t\t\t\trenderer.gammaInput = true;\n+\t\t\t\trenderer.gammaOutput = true;\n+\n+\t\t\t\tcontainer.appendChild( renderer.domElement );\n+\n+\t\t\t\t//\n+\t\t\t\t\n+\t\t\t\tstats = new Stats();\n+\t\t\t\tstats.domElement.style.position = 'absolute';\n+\t\t\t\tstats.domElement.style.top = '0px';\n+\t\t\t\tcontainer.appendChild( stats.domElement );\n+\n+\t\t\t\twindow.addEventListener( 'resize', onWindowResize, false );\n+\n+\t\t\t}\n+\n+\t\t\tfunction onWindowResize() {\n+\n+\t\t\t\tcamera.aspect = window.innerWidth / window.innerHeight;\n+\t\t\t\tcamera.updateProjectionMatrix();\n+\n+\t\t\t\trenderer.setSize( window.innerWidth, window.innerHeight );\n+\n+\t\t\t}\n+\n+\t\t\t//\n+\t\t\tvar numConnected;\n+\n+\t\t\tfunction animate() {\n+\n+\t\t\t\tvar vertexpos=0;\n+\t\t\t\tvar colorpos=0;\n+\t\t\t\tnumConnected = 0;\n+\n+    \t\t\tfor ( var i = 0; i < particleCount; i++ )\n+    \t\t\t\tparticlesData[ i ].numConnections = 0;\n+\n+    \t\t\tfor ( var i = 0; i < particleCount; i++ ) {\n+\n+    \t    \t\t// get the particle\n+\t        \t\tvar particleData = particlesData[i];\n+\n+\t\t\t\t\tparticlePositions[ i * 3     ] += particleData.velocity.x;\n+\t\t\t\t\tparticlePositions[ i * 3 + 1 ] += particleData.velocity.y;\n+\t\t\t\t\tparticlePositions[ i * 3 + 2 ] += particleData.velocity.z;\n+\n+\t        \t\tif ( particlePositions[ i * 3 + 1 ] < -rHalf || particlePositions[ i * 3 + 1 ] > rHalf )\n+\t            \t\tparticleData.velocity.y = -particleData.velocity.y;\n+\n+\t\t\t        if ( particlePositions[ i * 3 ] < -rHalf || particlePositions[ i * 3 ] > rHalf )\n+\t\t\t            particleData.velocity.x = -particleData.velocity.x;\n+\n+\t\t\t        if ( particlePositions[ i * 3 + 2 ] < -rHalf || particlePositions[ i * 3 + 2 ] > rHalf )\n+\t\t\t            particleData.velocity.z = -particleData.velocity.z;\n+\n+\t\t        \tif ( effectController.limitConnections && particleData.numConnections >= effectController.maxConnections )\n+\t\t        \t\tcontinue;\n+\n+\t\t\t        // Check collision\n+\t\t\t        for ( var j = i + 1; j < particleCount; j++ ) {\n+\n+\t\t            \tvar particleDataB = particlesData[ j ];\n+\t\t        \t\tif ( effectController.limitConnections && particleDataB.numConnections >= effectController.maxConnections )\n+\t\t\t        \t\tcontinue;\n+\t\t\t\t\t\t\n+\t\t\t\t\t\tvar dx = particlePositions[ i * 3     ] - particlePositions[ j * 3     ];\n+\t\t\t\t\t\tvar dy = particlePositions[ i * 3 + 1 ] - particlePositions[ j * 3 + 1 ];\n+\t\t\t\t\t\tvar dz = particlePositions[ i * 3 + 2 ] - particlePositions[ j * 3 + 2 ];\n+\t\t\t\t\t\tvar dist = Math.sqrt( dx * dx + dy * dy + dz * dz );\n+\n+\t\t\t            if ( dist < effectController.minDistance ) {\n+\t\t\t\t        \t\n+\t\t\t\t\t\t\tparticleData.numConnections++;","path":"examples/webgl_buffergeometry_drawcalls.html","position":256,"original_position":256,"commit_id":"9d27fb9d89496e35df74e3cb822fddbbec5a4952","original_commit_id":"9d27fb9d89496e35df74e3cb822fddbbec5a4952","user":{"login":"kile","id":782511,"avatar_url":"https://avatars.githubusercontent.com/u/782511?v=3","gravatar_id":"","url":"https://api.github.com/users/kile","html_url":"https://github.com/kile","followers_url":"https://api.github.com/users/kile/followers","following_url":"https://api.github.com/users/kile/following{/other_user}","gists_url":"https://api.github.com/users/kile/gists{/gist_id}","starred_url":"https://api.github.com/users/kile/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kile/subscriptions","organizations_url":"https://api.github.com/users/kile/orgs","repos_url":"https://api.github.com/users/kile/repos","events_url":"https://api.github.com/users/kile/events{/privacy}","received_events_url":"https://api.github.com/users/kile/received_events","type":"User","site_admin":false},"body":"Sure! I just saw yesterday a post about Mrdoob coding style (tm) :D so I wanted to take a look and correct it.","created_at":"2014-12-29T07:31:44Z","updated_at":"2014-12-29T07:31:44Z","html_url":"https://github.com/mrdoob/three.js/pull/5819#discussion_r22304426","pull_request_url":"https://api.github.com/repos/mrdoob/three.js/pulls/5819","_links":{"self":{"href":"https://api.github.com/repos/mrdoob/three.js/pulls/comments/22304426"},"html":{"href":"https://github.com/mrdoob/three.js/pull/5819#discussion_r22304426"},"pull_request":{"href":"https://api.github.com/repos/mrdoob/three.js/pulls/5819"}}},"pull_request":{"url":"https://api.github.com/repos/mrdoob/three.js/pulls/5819","id":26608941,"html_url":"https://github.com/mrdoob/three.js/pull/5819","diff_url":"https://github.com/mrdoob/three.js/pull/5819.diff","patch_url":"https://github.com/mrdoob/three.js/pull/5819.patch","issue_url":"https://api.github.com/repos/mrdoob/three.js/issues/5819","number":5819,"state":"open","locked":false,"title":"Added drawcalls example for buffergeometry","user":{"login":"kile","id":782511,"avatar_url":"https://avatars.githubusercontent.com/u/782511?v=3","gravatar_id":"","url":"https://api.github.com/users/kile","html_url":"https://github.com/kile","followers_url":"https://api.github.com/users/kile/followers","following_url":"https://api.github.com/users/kile/following{/other_user}","gists_url":"https://api.github.com/users/kile/gists{/gist_id}","starred_url":"https://api.github.com/users/kile/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kile/subscriptions","organizations_url":"https://api.github.com/users/kile/orgs","repos_url":"https://api.github.com/users/kile/repos","events_url":"https://api.github.com/users/kile/events{/privacy}","received_events_url":"https://api.github.com/users/kile/received_events","type":"User","site_admin":false},"body":"I've created an example of using ```drawcalls```on ```buffergeometry```to dynamically modify the number of points and lines to paint.\r\nIt's used both on a lines set and a pointcloud.\r\n\r\nYou can see here the working example:\r\nhttp://kile.stravaganza.org/lab/js/examples/webgl_buffergeometry_drawcalls.html","created_at":"2014-12-26T23:48:10Z","updated_at":"2014-12-29T07:31:44Z","closed_at":null,"merged_at":null,"merge_commit_sha":"92d40d9a6ede905c105858af2080ae9ff9c892f3","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/mrdoob/three.js/pulls/5819/commits","review_comments_url":"https://api.github.com/repos/mrdoob/three.js/pulls/5819/comments","review_comment_url":"https://api.github.com/repos/mrdoob/three.js/pulls/comments/{number}","comments_url":"https://api.github.com/repos/mrdoob/three.js/issues/5819/comments","statuses_url":"https://api.github.com/repos/mrdoob/three.js/statuses/9d27fb9d89496e35df74e3cb822fddbbec5a4952","head":{"label":"kile:master","ref":"master","sha":"9d27fb9d89496e35df74e3cb822fddbbec5a4952","user":{"login":"kile","id":782511,"avatar_url":"https://avatars.githubusercontent.com/u/782511?v=3","gravatar_id":"","url":"https://api.github.com/users/kile","html_url":"https://github.com/kile","followers_url":"https://api.github.com/users/kile/followers","following_url":"https://api.github.com/users/kile/following{/other_user}","gists_url":"https://api.github.com/users/kile/gists{/gist_id}","starred_url":"https://api.github.com/users/kile/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kile/subscriptions","organizations_url":"https://api.github.com/users/kile/orgs","repos_url":"https://api.github.com/users/kile/repos","events_url":"https://api.github.com/users/kile/events{/privacy}","received_events_url":"https://api.github.com/users/kile/received_events","type":"User","site_admin":false},"repo":{"id":13724643,"name":"three.js","full_name":"kile/three.js","owner":{"login":"kile","id":782511,"avatar_url":"https://avatars.githubusercontent.com/u/782511?v=3","gravatar_id":"","url":"https://api.github.com/users/kile","html_url":"https://github.com/kile","followers_url":"https://api.github.com/users/kile/followers","following_url":"https://api.github.com/users/kile/following{/other_user}","gists_url":"https://api.github.com/users/kile/gists{/gist_id}","starred_url":"https://api.github.com/users/kile/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kile/subscriptions","organizations_url":"https://api.github.com/users/kile/orgs","repos_url":"https://api.github.com/users/kile/repos","events_url":"https://api.github.com/users/kile/events{/privacy}","received_events_url":"https://api.github.com/users/kile/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/kile/three.js","description":"JavaScript 3D library.","fork":true,"url":"https://api.github.com/repos/kile/three.js","forks_url":"https://api.github.com/repos/kile/three.js/forks","keys_url":"https://api.github.com/repos/kile/three.js/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kile/three.js/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kile/three.js/teams","hooks_url":"https://api.github.com/repos/kile/three.js/hooks","issue_events_url":"https://api.github.com/repos/kile/three.js/issues/events{/number}","events_url":"https://api.github.com/repos/kile/three.js/events","assignees_url":"https://api.github.com/repos/kile/three.js/assignees{/user}","branches_url":"https://api.github.com/repos/kile/three.js/branches{/branch}","tags_url":"https://api.github.com/repos/kile/three.js/tags","blobs_url":"https://api.github.com/repos/kile/three.js/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kile/three.js/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kile/three.js/git/refs{/sha}","trees_url":"https://api.github.com/repos/kile/three.js/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kile/three.js/statuses/{sha}","languages_url":"https://api.github.com/repos/kile/three.js/languages","stargazers_url":"https://api.github.com/repos/kile/three.js/stargazers","contributors_url":"https://api.github.com/repos/kile/three.js/contributors","subscribers_url":"https://api.github.com/repos/kile/three.js/subscribers","subscription_url":"https://api.github.com/repos/kile/three.js/subscription","commits_url":"https://api.github.com/repos/kile/three.js/commits{/sha}","git_commits_url":"https://api.github.com/repos/kile/three.js/git/commits{/sha}","comments_url":"https://api.github.com/repos/kile/three.js/comments{/number}","issue_comment_url":"https://api.github.com/repos/kile/three.js/issues/comments/{number}","contents_url":"https://api.github.com/repos/kile/three.js/contents/{+path}","compare_url":"https://api.github.com/repos/kile/three.js/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kile/three.js/merges","archive_url":"https://api.github.com/repos/kile/three.js/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kile/three.js/downloads","issues_url":"https://api.github.com/repos/kile/three.js/issues{/number}","pulls_url":"https://api.github.com/repos/kile/three.js/pulls{/number}","milestones_url":"https://api.github.com/repos/kile/three.js/milestones{/number}","notifications_url":"https://api.github.com/repos/kile/three.js/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kile/three.js/labels{/name}","releases_url":"https://api.github.com/repos/kile/three.js/releases{/id}","created_at":"2013-10-20T18:51:55Z","updated_at":"2014-12-26T23:45:50Z","pushed_at":"2014-12-26T23:45:50Z","git_url":"git://github.com/kile/three.js.git","ssh_url":"git@github.com:kile/three.js.git","clone_url":"https://github.com/kile/three.js.git","svn_url":"https://github.com/kile/three.js","homepage":"http://threejs.org/","size":282218,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"mrdoob:dev","ref":"dev","sha":"463366fede11eb38078c90e2d3c416eaf3511de0","user":{"login":"mrdoob","id":97088,"avatar_url":"https://avatars.githubusercontent.com/u/97088?v=3","gravatar_id":"","url":"https://api.github.com/users/mrdoob","html_url":"https://github.com/mrdoob","followers_url":"https://api.github.com/users/mrdoob/followers","following_url":"https://api.github.com/users/mrdoob/following{/other_user}","gists_url":"https://api.github.com/users/mrdoob/gists{/gist_id}","starred_url":"https://api.github.com/users/mrdoob/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrdoob/subscriptions","organizations_url":"https://api.github.com/users/mrdoob/orgs","repos_url":"https://api.github.com/users/mrdoob/repos","events_url":"https://api.github.com/users/mrdoob/events{/privacy}","received_events_url":"https://api.github.com/users/mrdoob/received_events","type":"User","site_admin":false},"repo":{"id":576201,"name":"three.js","full_name":"mrdoob/three.js","owner":{"login":"mrdoob","id":97088,"avatar_url":"https://avatars.githubusercontent.com/u/97088?v=3","gravatar_id":"","url":"https://api.github.com/users/mrdoob","html_url":"https://github.com/mrdoob","followers_url":"https://api.github.com/users/mrdoob/followers","following_url":"https://api.github.com/users/mrdoob/following{/other_user}","gists_url":"https://api.github.com/users/mrdoob/gists{/gist_id}","starred_url":"https://api.github.com/users/mrdoob/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrdoob/subscriptions","organizations_url":"https://api.github.com/users/mrdoob/orgs","repos_url":"https://api.github.com/users/mrdoob/repos","events_url":"https://api.github.com/users/mrdoob/events{/privacy}","received_events_url":"https://api.github.com/users/mrdoob/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mrdoob/three.js","description":"JavaScript 3D library.","fork":false,"url":"https://api.github.com/repos/mrdoob/three.js","forks_url":"https://api.github.com/repos/mrdoob/three.js/forks","keys_url":"https://api.github.com/repos/mrdoob/three.js/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mrdoob/three.js/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mrdoob/three.js/teams","hooks_url":"https://api.github.com/repos/mrdoob/three.js/hooks","issue_events_url":"https://api.github.com/repos/mrdoob/three.js/issues/events{/number}","events_url":"https://api.github.com/repos/mrdoob/three.js/events","assignees_url":"https://api.github.com/repos/mrdoob/three.js/assignees{/user}","branches_url":"https://api.github.com/repos/mrdoob/three.js/branches{/branch}","tags_url":"https://api.github.com/repos/mrdoob/three.js/tags","blobs_url":"https://api.github.com/repos/mrdoob/three.js/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mrdoob/three.js/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mrdoob/three.js/git/refs{/sha}","trees_url":"https://api.github.com/repos/mrdoob/three.js/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mrdoob/three.js/statuses/{sha}","languages_url":"https://api.github.com/repos/mrdoob/three.js/languages","stargazers_url":"https://api.github.com/repos/mrdoob/three.js/stargazers","contributors_url":"https://api.github.com/repos/mrdoob/three.js/contributors","subscribers_url":"https://api.github.com/repos/mrdoob/three.js/subscribers","subscription_url":"https://api.github.com/repos/mrdoob/three.js/subscription","commits_url":"https://api.github.com/repos/mrdoob/three.js/commits{/sha}","git_commits_url":"https://api.github.com/repos/mrdoob/three.js/git/commits{/sha}","comments_url":"https://api.github.com/repos/mrdoob/three.js/comments{/number}","issue_comment_url":"https://api.github.com/repos/mrdoob/three.js/issues/comments/{number}","contents_url":"https://api.github.com/repos/mrdoob/three.js/contents/{+path}","compare_url":"https://api.github.com/repos/mrdoob/three.js/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mrdoob/three.js/merges","archive_url":"https://api.github.com/repos/mrdoob/three.js/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mrdoob/three.js/downloads","issues_url":"https://api.github.com/repos/mrdoob/three.js/issues{/number}","pulls_url":"https://api.github.com/repos/mrdoob/three.js/pulls{/number}","milestones_url":"https://api.github.com/repos/mrdoob/three.js/milestones{/number}","notifications_url":"https://api.github.com/repos/mrdoob/three.js/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mrdoob/three.js/labels{/name}","releases_url":"https://api.github.com/repos/mrdoob/three.js/releases{/id}","created_at":"2010-03-23T18:58:01Z","updated_at":"2014-12-29T02:54:51Z","pushed_at":"2014-12-29T06:40:37Z","git_url":"git://github.com/mrdoob/three.js.git","ssh_url":"git@github.com:mrdoob/three.js.git","clone_url":"https://github.com/mrdoob/three.js.git","svn_url":"https://github.com/mrdoob/three.js","homepage":"http://threejs.org/","size":340556,"stargazers_count":17639,"watchers_count":17639,"language":"JavaScript","has_issues":true,"has_downloads":false,"has_wiki":true,"has_pages":true,"forks_count":5008,"mirror_url":null,"open_issues_count":663,"forks":5008,"open_issues":663,"watchers":17639,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mrdoob/three.js/pulls/5819"},"html":{"href":"https://github.com/mrdoob/three.js/pull/5819"},"issue":{"href":"https://api.github.com/repos/mrdoob/three.js/issues/5819"},"comments":{"href":"https://api.github.com/repos/mrdoob/three.js/issues/5819/comments"},"review_comments":{"href":"https://api.github.com/repos/mrdoob/three.js/pulls/5819/comments"},"review_comment":{"href":"https://api.github.com/repos/mrdoob/three.js/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/mrdoob/three.js/pulls/5819/commits"},"statuses":{"href":"https://api.github.com/repos/mrdoob/three.js/statuses/9d27fb9d89496e35df74e3cb822fddbbec5a4952"}}}}