From f1f91b64d8df205468a368d35871d43ae595fb0e Mon Sep 17 00:00:00 2001 From: Thibault Neveu Date: Wed, 27 Jun 2018 14:11:53 +0100 Subject: [PATCH] DDPG finished --- demo/dist/metacar.min.js | 2 +- demo/webapp/ddpg-traffic.html | 2 +- demo/webapp/ddpg.html | 2 +- demo/webapp/index.html | 2 - demo/webapp/public/js/ddpg-traffic/index.js | 3 +- demo/webapp/public/js/ddpg/ddpg.js | 1 + demo/webapp/public/js/ddpg/ddpg_agent.js | 8 +- demo/webapp/public/js/ddpg/index.js | 5 +- demo/webapp/public/js/ddpg/memory.js | 243 ++++-------------- .../public/js/ddpg/prioritized_memory.js | 240 +++++++++++++++++ .../actor-model-ddpg-traffic-epoch-120.json | 1 + ...r-model-ddpg-traffic-epoch-120.weights.bin | Bin 0 -> 59656 bytes .../actor-model-ddpg-traffic.json | 1 - .../actor-model-ddpg-traffic.weights.bin | Bin 59656 -> 0 bytes .../critic-model-ddpg-traffic-epoch-120.json | 1 + ...c-model-ddpg-traffic-epoch-120.weights.bin | Bin 0 -> 60932 bytes .../critic-model-ddpg-traffic.json | 1 - .../critic-model-ddpg-traffic.weights.bin | Bin 60932 -> 0 bytes dist/metacar.min.js | 2 +- 19 files changed, 296 insertions(+), 218 deletions(-) create mode 100644 demo/webapp/public/js/ddpg/prioritized_memory.js create mode 100644 demo/webapp/public/models/ddpg-traffic/actor-model-ddpg-traffic-epoch-120.json create mode 100644 demo/webapp/public/models/ddpg-traffic/actor-model-ddpg-traffic-epoch-120.weights.bin delete mode 100644 demo/webapp/public/models/ddpg-traffic/actor-model-ddpg-traffic.json delete mode 100644 demo/webapp/public/models/ddpg-traffic/actor-model-ddpg-traffic.weights.bin create mode 100644 demo/webapp/public/models/ddpg-traffic/critic-model-ddpg-traffic-epoch-120.json create mode 100644 demo/webapp/public/models/ddpg-traffic/critic-model-ddpg-traffic-epoch-120.weights.bin delete mode 100644 demo/webapp/public/models/ddpg-traffic/critic-model-ddpg-traffic.json delete mode 100644 demo/webapp/public/models/ddpg-traffic/critic-model-ddpg-traffic.weights.bin diff --git a/demo/dist/metacar.min.js b/demo/dist/metacar.min.js index c8f1cf2..d4e7f7c 100644 --- a/demo/dist/metacar.min.js +++ b/demo/dist/metacar.min.js @@ -1 +1 @@ -window.metacar=function(t){var e={};function i(o){if(e[o])return e[o].exports;var n=e[o]={i:o,l:!1,exports:{}};return t[o].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.d=function(t,e,o){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)i.d(o,n,function(e){return t[e]}.bind(null,n));return o},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=1)}([function(t,e){t.exports=window.PIXI},function(t,e,i){"use strict";i.r(e);var o=i(0),n=(o.Application,o.loader),a=(o.loader.resources,o.Sprite),r=o.Graphics,s=o.Container,h="https://metacar-project.com/",c=h+"public/textures/textures.json",l=h+"public/images/",d=60,p={DEFAULT:"car.png",AGENT:"car_agent.png"},u={ROAD:-1,DEFAULT:0,CAR:1,AGENT:1},v={ROADS:{"↕":{image:"road_u.png",orientation:1.5},"↔":{image:"road_r.png",orientation:0},"↱":{image:"road_rotate_ld.png",orientation:1.25},"↰":{image:"road_rotate_ul.png",orientation:.75},"↲":{image:"road_rotate_rl.png",orientation:.25},"↳":{image:"road_rotate_dl.png",orientation:1.75},"↟":{image:"road_up.png",orientation:1.5},"↠":{image:"road_rp.png",orientation:0},"↤":{image:"road_r2.png",orientation:0},"↦":{image:"road_l2.png",orientation:1},"↥":{image:"road_d2.png",orientation:.5},"↧":{image:"road_u2.png",orientation:1.5}},house:{image:"house.png"},house2:{image:"house2.png"},house3:{image:"house3.png"},bench:{image:"bench.png"},tree:{image:"tree.png"}},y={level:{fullCity:{cars:[{mx:2,my:5,line:0,auto:!0},{mx:3,my:4,line:0,auto:!0},{mx:3,my:4,line:1,auto:!0},{mx:6,my:3,line:0,auto:!0},{mx:6,my:3,line:1,auto:!0},{mx:8,my:2,line:0,auto:!0},{mx:8,my:2,line:1,auto:!0},{mx:2,my:7,line:0,auto:!0}],house:[{x:9,y:409},{x:146,y:162},{x:439,y:39}],house2:[{x:425,y:192},{x:431,y:354}],house3:[{x:426,y:281},{x:51,y:157},{x:553,y:34}],bench:[{x:259,y:206},{x:8,y:205}],tree:[{x:1,y:303},{x:54,y:357},{x:215,y:325},{x:230,y:400},{x:282,y:368},{x:182,y:433},{x:285,y:309},{x:576,y:233},{x:581,y:300},{x:519,y:388},{x:582,y:391},{x:256,y:69},{x:151,y:43},{x:77,y:77},{x:26,y:24},{x:189,y:98}],map:[[0,0,0,0,0,0,"↕",0,0,0,0],[0,0,0,0,0,0,"↟",0,0,0,0],[0,0,0,0,0,0,"↦","↔","↔","↠","↔"],[0,0,0,0,0,0,"↕",0,0,0,0],["↔","↔","↧","↔","↠","↔","↤",0,0,0,0],[0,0,"↕",0,0,0,"↕",0,0,0,0],[0,0,"↟",0,0,0,"↟",0,0,0,0],[0,0,"↕",0,0,0,"↕",0,0,0,0]]},level1:{cars:[{mx:5,my:3,line:0,auto:!0},{mx:5,my:3,line:1,auto:!0},{mx:5,my:1,line:0,auto:!0}],tree:[{x:120,y:50},{x:86.5,y:85},{x:94.5,y:135},{x:30.5,y:128},{x:72.5,y:190},{x:23.5,y:232},{x:110.5,y:242},{x:43.5,y:33},{x:18.5,y:178},{x:305.5,y:125},{x:360.5,y:122}],asset:[{x:252.5,y:142},{x:86.5,y:85},{x:94.5,y:135},{x:30.5,y:128},{x:252.5,y:26},{x:195.5,y:0},{x:307.5,y:1},{x:72.5,y:190},{x:23.5,y:232},{x:110.5,y:242},{x:43.5,y:33},{x:35.5,y:185},{x:18.5,y:178},{x:289.5,y:126},{x:337.5,y:126},{x:305.5,y:125},{x:360.5,y:122},{x:492.5,y:56},{x:503.5,y:136},{x:504.5,y:58}],bench:[{x:252.5,y:142},{x:252.5,y:26}],road:[{x:240,y:60},{x:240,y:60},{x:480,y:0},{x:480,y:60},{x:480,y:120},{x:480,y:180},{x:480,y:240},{x:300,y:180},{x:300,y:180},{x:360,y:180},{x:420,y:180},{x:420,y:120},{x:420,y:60},{x:360,y:60},{x:300,y:60},{x:420,y:120}],house3:[{x:503.5,y:136}],house:[{x:504.5,y:58}],map:[[0,0,0,0,0,0,0,0,0,0],[0,0,0,"↱","↠","↔","↔","↰",0,0],[0,0,0,"↕",0,0,0,"↟",0,0],[0,0,0,"↳","↔","↔","↔","↲",0,0],[0,0,0,0,0,0,0,0,0,0]],agent:{mx:4,my:3,line:0,motion:{type:"BasicMotionEngine",options:{rotationStep:.5,actions:["UP","LEFT","RIGHT"]}}}},level0:{cars:[],house:[{x:263,y:108},{x:112,y:258}],house3:[{x:262,y:16}],bench:[{x:135,y:34}],tree:[{x:124,y:134},{x:7,y:11},{x:69,y:10},{x:19,y:238},{x:5,y:133},{x:260,y:211}],map:[[0,0,0,0,0],[0,"↱","↔","↰",0],[0,"↕",0,"↕",0],[0,"↳","↠","↲",0],[0,0,0,0,0]],agent:{mx:2,my:1,line:1,motion:{type:"BasicMotionEngine",options:{rotationStep:.5,actions:["UP","LEFT","RIGHT","DOWN","WAIT"]}}}},level2:{cars:[{mx:7,my:7,line:0},{mx:9,my:6,line:0},{mx:8,my:6,line:1},{mx:10,my:6,line:1}],house:[{x:68,y:317}],house2:[{x:624,y:84},{x:-15,y:144}],house3:[{x:618,y:231},{x:13,y:441}],bench:[{x:318,y:216},{x:422,y:36}],tree:[{x:151,y:144},{x:229,y:175},{x:326,y:132},{x:413,y:167},{x:487,y:157},{x:445,y:123},{x:511,y:429},{x:584,y:427},{x:80,y:391},{x:219,y:409},{x:207,y:326},{x:156,y:426},{x:162,y:13}],map:[[0,0,0,0,0,0,0,0,0,0,0],[0,"↱","↔","↔","↔","↔","↔","↔","↔","↰",0],[0,"↕",0,0,0,0,0,0,0,"↕",0],[0,"↕",0,0,0,0,0,0,0,"↕",0],[0,"↳","↔","↔","↔","↧","↔","↔","↔","↲",0],[0,0,0,0,0,"↕",0,0,0,0,0],[0,0,0,0,0,"↕",0,"↱","↔","↔","↔"],[0,0,0,0,0,"↕",0,"↕",0,0,0]],agent:{mx:2,my:4,line:0,motion:{type:"BasicMotionEngine",options:{rotationStep:.5,actions:["UP","LEFT","RIGHT","DOWN","WAIT"]}}}}}};function m(t,e){var i=new XMLHttpRequest;i.overrideMimeType("application/json"),i.open("GET",t,!0),i.onreadystatechange=function(){4==i.readyState&&200==i.status&&e(JSON.parse(i.responseText))},i.send(null)}function f(t,e){var i=t.split("//");i=i[1].split("/"),e(y[i[0]][i[1]])}function g(t,e){({"embedded:":f,"http:":m,"https:":m})[t.split("//")[0]](t,e)}function x(t,e){var i=document.createElement("a");document.body.appendChild(i);var o=new Blob([t],{type:"application/octet-binary"}),n=window.URL.createObjectURL(o);i.href=n,i.download=e,i.click(),window.URL.revokeObjectURL(n),i.href=""}function _(t){var e={};return e.code=t,e.isDown=!1,e.isUp=!0,e.press=void 0,e.release=void 0,e.downHandler=function(t){t.keyCode===e.code&&(e.isUp&&e.press&&e.press(),e.isDown=!0,e.isUp=!1),t.preventDefault()},e.upHandler=function(t){t.keyCode===e.code&&(e.isDown&&e.release&&e.release(),e.isDown=!1,e.isUp=!0),t.preventDefault()},window.addEventListener("keydown",e.downHandler.bind(e),!1),window.addEventListener("keyup",e.upHandler.bind(e),!1),e}var I,C=0,w=function(){function t(t,e,i,o){void 0===o&&(o={});var n=this;this.level=t,o.image=o.image||p.DEFAULT,o.lidar=o.lidar||!1,o.lidarInfo=o.lidarInfo||{pts:5,width:4,height:5,pos:0},this.core=new a(i[o.image]),this.info=e,this.core.scale.x=.8,this.core.scale.y=.8,this.core.anchor.x=.5,this.core.anchor.y=.5,this.core.road=void 0,this.core.carId=C,C+=1,this.core.agent=!1,this.core.obstacle=!0,this.core.mapId=u.CAR,o.lidar&&(this.createLidar(o.lidarInfo),this.core.lidar=this.lidar),o.motionEngine?(this.motion=o.motionEngine,this.motion.setUp(this.core,this.lidar),this.core.rotationStep=.5):this.core.rotationStep=.5,this.core.mx=this.info.mx,this.core.my=this.info.my,this.core.x=this.info.mx*d,this.core.y=this.info.my*d,this.core.checkAndsetNewRoad=function(t){return n.checkAndsetNewRoad(t)};var r=this.level.getRoad(this.core.my,this.core.mx);this.core.line=0,r&&r.setCarPosition(this.core,this.info.line)}return t.prototype.checkAndsetNewRoad=function(t){var e=this.core.road;t||(t=this.level.getRoad(this.core.my,this.core.mx)),t!=e&&(e&&e.cars.splice(e.cars.indexOf(this.core.carId),1),this.core.road=t,this.core.haveTurned=!1,this.core.optionalTurn=!1,this.turnedRandom=void 0,t&&t.cars.push(this.core.carId))},t.prototype.reset=function(){this.core.mx=this.info.mx,this.core.my=this.info.my;var t=this.level.getRoad(this.core.my,this.core.mx);t&&t.setCarPosition(this.core,this.info.line,!0)},t.prototype.getState=function(t){if(void 0===t&&(t=!1),t){var e=[];return this.motion.state.map(function(t){e=e.concat(t)}),e}return this.motion.state.map(function(t){return t.slice()})},t.prototype.step=function(t,e){if(void 0===e&&(e=null),null==e)var i=this.motion.step(t),o=i.agentCollisions,n=i.onRoad;else{var a=this.motion.actionStep(t,e);o=a.agentCollisions,n=a.onRoad}return{agentCollisions:o,onRoad:n}},t.prototype.createLidar=function(t){t.pts=t.pts||5,t.width=t.width||4,t.height=t.height||5,t.pos=t.pos||0,this.lidar=new s,this.lidar.lidarPts=[],this.lidar.collisionPts=[];var e=new r;e.pt=!1,e.alpha=.3,e.beginFill(5329233),e.drawRect(0,0,this.core.width*t.width,this.core.height*t.height),e.endFill();var i=new r;i.pt=!1,i.alpha=0,i.beginFill(5308416),i.drawRect(this.core.width-5,e.height/2,3,3),i.endFill();var o=new r;o.pt=!1,o.alpha=0,o.beginFill(5308416),o.drawRect(-1,e.height/2-2,3,3),o.endFill();var n=new r;n.pt=!1,n.alpha=0,n.beginFill(5308416),n.drawRect(this.core.width/2,e.height/2-this.core.height/2+5,3,3),n.endFill();var a=new r;a.pt=!1,a.alpha=0,a.beginFill(5308416),a.drawRect(this.core.width/2,e.height/2+this.core.height/2-8,3,3),a.endFill(),o.x-=t.pos*this.core.width,i.x-=t.pos*this.core.width,a.x-=t.pos*this.core.width,n.x-=t.pos*this.core.width;for(var h=e.width/t.pts,c=e.height/t.pts,l=t.pts-1;l>=0;l--)for(var d=0;do.x&&i.xo.y&&i.y=4||!t)&&(r=!0),{agentCollisions:o,onRoad:r}},t.prototype.setState=function(t){for(var e=0,i=0;ithis.state[o][n]||t[a].mapId==u.ROAD&&this.state[o][n]==u.DEFAULT)&&(this.state[o][n]=t[a].mapId)}e+=1}},t}(),b=(I=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])},function(t,e){function i(){this.constructor=t}I(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),R=function(t){function e(e,i){var o=t.call(this,e)||this;return o.rotationStep=i.rotationStep||.5,o.actions=i.actions||["UP","LEFT","RIGHT","DOWN","WAIT"],o}return b(e,t),e.prototype.setUp=function(t,e){this.car=t,this.lidar=e,this.state=[];for(var i=0;i0&&(this.car.v=0,this.car.vy=0),{agentCollisions:i,onRoad:o}},e}(M),E=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])};return function(e,i){function o(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(o.prototype=i.prototype,new o)}}(),L=function(t){function e(e){var i=t.call(this,e)||this;return i.map=i.level.getMap(),i.mapSizeY=i.map.length,i.mapSizeX=i.map[0].length,i.rotationStep=.5,i.rotationToNextCase={},i.rotationToNextCase[0]={mx:1,my:0},i.rotationToNextCase[.5]={mx:0,my:1},i.rotationToNextCase[1]={mx:-1,my:0},i.rotationToNextCase[1.5]={mx:0,my:-1},i.rotationToNextCase[-.5]={mx:0,my:-1},i.rotationToNextCase[-1]={mx:-1,my:0},i.rotationToNextCase[-1.5]={mx:0,my:1},i}return E(e,t),e.prototype.setUp=function(t,e){this.car=t,this.lidar=e,this.state=[];for(var i=0;i=this.mapSizeY||t<0||t>=this.mapSizeX||0==this.map[e][t])return!1;if(i&&this.level.getRoad(e,t).cars.length>0)return!1;return!0},e.prototype.autoRotation=function(){var t=d+d/3,e=d-d/3.5,i=d;if(this.car.next_road){var o=Math.abs((this.car.next_road.outroad.y+d/2-this.car.y)*this.car.next_road.outroad_np.my),n=Math.abs((this.car.next_road.outroad.x+d/2-this.car.x)*this.car.next_road.outroad_np.mx);if(0==this.car.next_road.rotation_type&&othis.car.next_road.outroad.x+d/2?(this.car.x=this.car.next_road.outroad.x+d-d/2-d/4,this.car.y=this.car.next_road.outroad.y):0!=n&&this.car.ythis.car.next_road.outroad.y+d/2&&(this.car.y=this.car.next_road.outroad.y+d-d/2-d/4,this.car.x=this.car.next_road.outroad.x),void(this.car.next_road=void 0)}else{var a=this.car.rotation/Math.PI,r=(this.car.rotation/Math.PI+.5)%2,s=(this.car.rotation/Math.PI-.5)%2,h=this.rotationToNextCase[a],c=this.rotationToNextCase[r],l=this.rotationToNextCase[s],p=!1,u=this.car.mx+h.mx,v=this.car.my+h.my;if(this.isRoad(u,v)?this.car.haveTurned||this.car.turnedRandom?!this.car.haveTurned&&this.car.turnedRandom<.5&&this.isRoad(this.car.mx+c.mx,this.car.my+c.my)?(p=!0,this.car.optionalTurn=!0):!this.car.haveTurned&&this.car.turnedRandom>=.5&&this.isRoad(this.car.mx+l.mx,this.car.my+l.my)&&(p=!0,this.car.optionalTurn=!0):this.car.turnedRandom=Math.random():(p=!0,this.car.optionalTurn=!1),p)for(var y=[(a+.5)%2,(a-.5)%2,null],m=0;m=1&&n&&n.core.line==i&&(i=0==i?1:0),e.line=i,e.x=t.x,e.y=t.y,e.x+=d/2,e.y+=d/2;var a=1*d/4;t.orientation=Math.floor(t.orientation/e.rotationStep)*e.rotationStep;var r=-t.orientation*Math.PI,s=0*Math.cos(r)-a*Math.sin(r),h=Math.cos(r)*a+0*Math.sin(r),c=0==i?1:-1,l=0==i?0:Math.PI;e.x+=c*Math.round(s),e.y+=c*Math.round(h),e.mx=Math.floor(e.x/d),e.my=Math.floor(e.y/d),e.rotation=r+l,e.checkAndsetNewRoad(t)},t.prototype.createAsset=function(t,e,i,o){var n=new a(i[t]);n.obstacle=!1,n.type=o,n.mapId=0,n.x=e.x,n.y=e.y,this.level.addChild(n),this.assets.push(n)},t.prototype.createMap=function(t,e,i,o){if(void 0===o&&(o=!0),o)for(var n=0;n0?o=-1:e||(o=-1),o},e.prototype.getLastReward=function(){return this.lastReward},e.prototype.step=function(t,e){void 0===e&&(e=null);for(var i=0;i0&&0==this.car.a?this.car.v=Math.max(0,this.car.v-.01):this.car.v<0&&0==this.car.a&&(this.car.v=Math.min(0,this.car.v+.01)),this.car.a>0&&this.car.v>=0?this.car.v=Math.min(1.5,this.car.v+.01*this.car.a):this.car.a>0&&this.car.v<0&&(this.car.v=Math.min(1.5,this.car.v+.03*this.car.a)),this.car.a<0&&this.car.v<=0?this.car.v=Math.max(-1.5,this.car.v+.01*this.car.a):this.car.a<0&&this.car.v>0&&(this.car.v=Math.max(-1.5,this.car.v+.03*this.car.a)),0==this.car.yaw_rate)this.car.x+=this.car.v*Math.cos(this.car.rotation)*t,this.car.y+=this.car.v*Math.sin(this.car.rotation)*t;else{var e=.01*this.car.yaw_rate*(this.car.v+.001)*Math.PI;this.car.x+=this.car.v/e*(Math.sin(this.car.rotation+e*t)-Math.sin(this.car.rotation)),this.car.y+=this.car.v/e*(Math.cos(this.car.rotation)-Math.cos(this.car.rotation+e*t)),this.car.rotation+=e*t}this.car.mx=Math.floor(this.car.x/d),this.car.my=Math.floor(this.car.y/d),this.car.checkAndsetNewRoad(),this.lidar.x=this.car.x,this.lidar.y=this.car.y,this.lidar.rotation=this.car.rotation;var i=this.detectInteractions(!0,!0),o=i.agentCollisions,n=i.onRoad;return o.length>0&&(this.car.v=0,this.car.vy=0),{agentCollisions:o,onRoad:n}},e}(M),j={env:k,editor:U,level:{fullCity:"embedded://level/fullCity",level1:"embedded://level/level1",level2:"embedded://level/level2",level0:"embedded://level/level0"},motion:{BasicMotion:R,ControlMotion:B}};e.default=j}]).default; \ No newline at end of file +window.metacar=function(t){var e={};function i(o){if(e[o])return e[o].exports;var n=e[o]={i:o,l:!1,exports:{}};return t[o].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.d=function(t,e,o){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)i.d(o,n,function(e){return t[e]}.bind(null,n));return o},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=1)}([function(t,e){t.exports=window.PIXI},function(t,e,i){"use strict";i.r(e);var o=i(0),n=(o.Application,o.loader),a=(o.loader.resources,o.Sprite),r=o.Graphics,s=o.Container,h="https://metacar-project.com/",c=h+"public/textures/textures.json",l=h+"public/images/",d=60,p={DEFAULT:"car.png",AGENT:"car_agent.png"},y={ROAD:-1,DEFAULT:0,CAR:1,AGENT:1},u={ROADS:{"↕":{image:"road_u.png",orientation:1.5},"↔":{image:"road_r.png",orientation:0},"↱":{image:"road_rotate_ld.png",orientation:1.25},"↰":{image:"road_rotate_ul.png",orientation:.75},"↲":{image:"road_rotate_rl.png",orientation:.25},"↳":{image:"road_rotate_dl.png",orientation:1.75},"↟":{image:"road_up.png",orientation:1.5},"↠":{image:"road_rp.png",orientation:0},"↤":{image:"road_r2.png",orientation:0},"↦":{image:"road_l2.png",orientation:1},"↥":{image:"road_d2.png",orientation:.5},"↧":{image:"road_u2.png",orientation:1.5}},house:{image:"house.png"},house2:{image:"house2.png"},house3:{image:"house3.png"},bench:{image:"bench.png"},tree:{image:"tree.png"}},x={level:{fullCity:{cars:[{mx:2,my:5,line:0,auto:!0},{mx:3,my:4,line:0,auto:!0},{mx:3,my:4,line:1,auto:!0},{mx:6,my:3,line:0,auto:!0},{mx:6,my:3,line:1,auto:!0},{mx:8,my:2,line:0,auto:!0},{mx:8,my:2,line:1,auto:!0},{mx:2,my:7,line:0,auto:!0}],house:[{x:9,y:409},{x:146,y:162},{x:439,y:39}],house2:[{x:425,y:192},{x:431,y:354}],house3:[{x:426,y:281},{x:51,y:157},{x:553,y:34}],bench:[{x:259,y:206},{x:8,y:205}],tree:[{x:1,y:303},{x:54,y:357},{x:215,y:325},{x:230,y:400},{x:282,y:368},{x:182,y:433},{x:285,y:309},{x:576,y:233},{x:581,y:300},{x:519,y:388},{x:582,y:391},{x:256,y:69},{x:151,y:43},{x:77,y:77},{x:26,y:24},{x:189,y:98}],map:[[0,0,0,0,0,0,"↕",0,0,0,0],[0,0,0,0,0,0,"↟",0,0,0,0],[0,0,0,0,0,0,"↦","↔","↔","↠","↔"],[0,0,0,0,0,0,"↕",0,0,0,0],["↔","↔","↧","↔","↠","↔","↤",0,0,0,0],[0,0,"↕",0,0,0,"↕",0,0,0,0],[0,0,"↟",0,0,0,"↟",0,0,0,0],[0,0,"↕",0,0,0,"↕",0,0,0,0]]},level1:{cars:[{mx:5,my:3,line:0,auto:!0},{mx:5,my:3,line:1,auto:!0},{mx:5,my:1,line:0,auto:!0}],tree:[{x:120,y:50},{x:86.5,y:85},{x:94.5,y:135},{x:30.5,y:128},{x:72.5,y:190},{x:23.5,y:232},{x:110.5,y:242},{x:43.5,y:33},{x:18.5,y:178},{x:305.5,y:125},{x:360.5,y:122}],asset:[{x:252.5,y:142},{x:86.5,y:85},{x:94.5,y:135},{x:30.5,y:128},{x:252.5,y:26},{x:195.5,y:0},{x:307.5,y:1},{x:72.5,y:190},{x:23.5,y:232},{x:110.5,y:242},{x:43.5,y:33},{x:35.5,y:185},{x:18.5,y:178},{x:289.5,y:126},{x:337.5,y:126},{x:305.5,y:125},{x:360.5,y:122},{x:492.5,y:56},{x:503.5,y:136},{x:504.5,y:58}],bench:[{x:252.5,y:142},{x:252.5,y:26}],road:[{x:240,y:60},{x:240,y:60},{x:480,y:0},{x:480,y:60},{x:480,y:120},{x:480,y:180},{x:480,y:240},{x:300,y:180},{x:300,y:180},{x:360,y:180},{x:420,y:180},{x:420,y:120},{x:420,y:60},{x:360,y:60},{x:300,y:60},{x:420,y:120}],house3:[{x:503.5,y:136}],house:[{x:504.5,y:58}],map:[[0,0,0,0,0,0,0,0,0,0],[0,0,0,"↱","↠","↔","↔","↰",0,0],[0,0,0,"↕",0,0,0,"↟",0,0],[0,0,0,"↳","↔","↔","↔","↲",0,0],[0,0,0,0,0,0,0,0,0,0]],agent:{mx:4,my:3,line:0,motion:{type:"BasicMotionEngine",options:{rotationStep:.5,actions:["UP","LEFT","RIGHT"]}}}},level0:{cars:[],house:[{x:263,y:108},{x:112,y:258}],house3:[{x:262,y:16}],bench:[{x:135,y:34}],tree:[{x:124,y:134},{x:7,y:11},{x:69,y:10},{x:19,y:238},{x:5,y:133},{x:260,y:211}],map:[[0,0,0,0,0],[0,"↱","↔","↰",0],[0,"↕",0,"↕",0],[0,"↳","↠","↲",0],[0,0,0,0,0]],agent:{mx:2,my:1,line:1,motion:{type:"BasicMotionEngine",options:{rotationStep:.5,actions:["UP","LEFT","RIGHT","DOWN","WAIT"]}}}},level2:{cars:[],road:[{x:300,y:360},{x:300,y:360},{x:360,y:360},{x:420,y:360},{x:240,y:360},{x:180,y:360},{x:120,y:360},{x:480,y:360},{x:480,y:360},{x:120,y:360},{x:60,y:360},{x:300,y:300},{x:300,y:240},{x:480,y:360},{x:480,y:360},{x:540,y:360},{x:300,y:180},{x:360,y:180},{x:240,y:180},{x:240,y:180},{x:180,y:180},{x:420,y:180},{x:420,y:120},{x:180,y:120},{x:300,y:60},{x:420,y:60},{x:180,y:60},{x:240,y:60},{x:360,y:60},{x:480,y:60},{x:120,y:60},{x:540,y:60},{x:540,y:120},{x:540,y:180},{x:540,y:240},{x:540,y:300},{x:60,y:60},{x:60,y:120},{x:60,y:180},{x:60,y:240},{x:60,y:300},{x:60,y:240},{x:360,y:180},{x:480,y:360}],asset:[{x:162,y:264},{x:407,y:264},{x:259,y:126},{x:306,y:33},{x:491,y:148},{x:391,y:431},{x:608,y:35},{x:484,y:224},{x:248,y:297},{x:376,y:336},{x:78,y:429},{x:1,y:205},{x:3,y:106},{x:-46,y:290},{x:622,y:154},{x:617,y:280}],house:[{x:162,y:264},{x:622,y:154}],house3:[{x:407,y:264},{x:-46,y:290}],tree:[{x:259,y:126},{x:491,y:148},{x:391,y:431},{x:608,y:35},{x:484,y:224},{x:248,y:297},{x:78,y:429},{x:1,y:205},{x:3,y:106},{x:617,y:280}],bench:[{x:306,y:33},{x:376,y:336}],map:[[0,0,0,0,0,0,0,0,0,0,0],[0,"↱","↔","↧","↔","↔","↔","↧","↔","↰",0],[0,"↕",0,"↕",0,0,0,"↕",0,"↕",0],[0,"↕",0,"↳","↔","↧","↠","↲",0,"↕",0],[0,"↟",0,0,0,"↕",0,0,0,"↕",0],[0,"↕",0,0,0,"↕",0,0,0,"↕",0],[0,"↳","↔","↔","↔","↥","↔","↔","↠","↲",0],[0,0,0,0,0,0,0,0,0,0,0]],agent:{mx:4,my:3,line:0,motion:{type:"BasicMotionEngine",options:{rotationStep:.5,actions:["UP","LEFT","RIGHT","DOWN","WAIT"]}}}},level3:{cars:[{mx:1,my:3,line:0},{mx:1,my:8,line:0},{mx:4,my:8,line:0},{mx:7,my:7,line:1},{mx:9,my:6,line:0},{mx:11,my:4,line:1},{mx:9,my:3,line:1},{mx:7,my:2,line:1},{mx:5,my:1,line:1},{mx:2,my:1,line:1},{mx:6,my:8,line:0},{mx:1,my:6,line:0},{mx:5,my:5,line:1},{mx:4,my:3,line:1},{mx:3,my:4,line:0},{mx:4,my:6,line:0}],road:[{x:120,y:60},{x:180,y:60},{x:240,y:60},{x:60,y:60},{x:60,y:120},{x:60,y:180},{x:60,y:240},{x:60,y:300},{x:60,y:360},{x:60,y:420},{x:60,y:480},{x:120,y:480},{x:180,y:480},{x:240,y:480},{x:300,y:60},{x:300,y:120},{x:300,y:180},{x:300,y:480},{x:300,y:420},{x:300,y:360},{x:300,y:180},{x:360,y:180},{x:420,y:180},{x:420,y:120},{x:420,y:60},{x:240,y:240},{x:300,y:60},{x:360,y:60},{x:240,y:180},{x:300,y:180},{x:300,y:240},{x:300,y:300},{x:240,y:300},{x:180,y:180},{x:180,y:240},{x:180,y:300},{x:360,y:60},{x:420,y:60},{x:420,y:60},{x:420,y:120},{x:420,y:180},{x:420,y:180},{x:480,y:180},{x:540,y:180},{x:660,y:180},{x:600,y:180},{x:660,y:240},{x:660,y:300},{x:660,y:360},{x:600,y:360},{x:540,y:360},{x:480,y:360},{x:420,y:360},{x:300,y:480},{x:360,y:480},{x:360,y:420},{x:360,y:360},{x:420,y:360},{x:420,y:420},{x:420,y:480},{x:360,y:480},{x:180,y:360},{x:240,y:360},{x:300,y:360},{x:300,y:300},{x:300,y:240},{x:180,y:180},{x:240,y:180},{x:300,y:180},{x:180,y:240},{x:180,y:300},{x:240,y:180},{x:180,y:60},{x:60,y:300},{x:300,y:480},{x:240,y:480},{x:600,y:180},{x:540,y:180},{x:660,y:300},{x:480,y:360}],asset:[{x:515,y:262},{x:378,y:254},{x:510,y:89},{x:626,y:86},{x:518,y:445},{x:631,y:436},{x:711,y:434},{x:243,y:295},{x:243,y:246},{x:253,y:153},{x:16,y:521},{x:129,y:214},{x:121,y:228},{x:238,y:425},{x:456,y:273},{x:584,y:531},{x:376,y:558},{x:63,y:539},{x:91,y:559},{x:4,y:515},{x:-3,y:315},{x:-3,y:183},{x:368,y:188},{x:500,y:18},{x:610,y:16},{x:685,y:13},{x:273,y:0},{x:738,y:359},{x:742,y:181},{x:752,y:12}],house3:[{x:515,y:262},{x:626,y:86}],house2:[{x:378,y:254},{x:631,y:436},{x:711,y:434},{x:752,y:12}],house:[{x:510,y:89},{x:518,y:445},{x:742,y:181}],tree:[{x:243,y:295},{x:243,y:246},{x:121,y:228},{x:238,y:425},{x:456,y:273},{x:584,y:531},{x:376,y:558},{x:91,y:559},{x:4,y:515},{x:-3,y:315},{x:-3,y:183},{x:368,y:188},{x:500,y:18},{x:610,y:16},{x:685,y:13},{x:273,y:0},{x:738,y:359}],bench:[{x:253,y:153}],map:[[0,0,0,0,0,0,0,0,0,0,0,0,0],[0,"↱","↔","↠","↔","↔","↔","↰",0,0,0,0,0],[0,"↕",0,0,0,0,0,"↕",0,0,0,0,0],[0,"↕",0,"↱","↠","↰",0,"↳","↔","↠","↔","↰",0],[0,"↕",0,"↕",0,"↕",0,0,0,0,0,"↕",0],[0,"↟",0,"↕",0,"↕",0,0,0,0,0,"↟",0],[0,"↕",0,"↳","↔","↲",0,"↱","↠","↔","↔","↲",0],[0,"↕",0,0,0,0,0,"↕",0,0,0,0,0],[0,"↳","↔","↔","↔","↠","↔","↲",0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0]],agent:{mx:3,my:8,line:0,motion:{type:"BasicMotionEngine",options:{rotationStep:.5,actions:["UP","LEFT","RIGHT","DOWN","WAIT"]}}}}}};function v(t,e){var i=new XMLHttpRequest;i.overrideMimeType("application/json"),i.open("GET",t,!0),i.onreadystatechange=function(){4==i.readyState&&200==i.status&&e(JSON.parse(i.responseText))},i.send(null)}function m(t,e){var i=t.split("//");i=i[1].split("/"),e(x[i[0]][i[1]])}function f(t,e){({"embedded:":m,"http:":v,"https:":v})[t.split("//")[0]](t,e)}function g(t,e){var i=document.createElement("a");document.body.appendChild(i);var o=new Blob([t],{type:"application/octet-binary"}),n=window.URL.createObjectURL(o);i.href=n,i.download=e,i.click(),window.URL.revokeObjectURL(n),i.href=""}function _(t){var e={};return e.code=t,e.isDown=!1,e.isUp=!0,e.press=void 0,e.release=void 0,e.downHandler=function(t){t.keyCode===e.code&&(e.isUp&&e.press&&e.press(),e.isDown=!0,e.isUp=!1),t.preventDefault()},e.upHandler=function(t){t.keyCode===e.code&&(e.isDown&&e.release&&e.release(),e.isDown=!1,e.isUp=!0),t.preventDefault()},window.addEventListener("keydown",e.downHandler.bind(e),!1),window.addEventListener("keyup",e.upHandler.bind(e),!1),e}var I,C=0,w=function(){function t(t,e,i,o){void 0===o&&(o={});var n=this;this.level=t,o.image=o.image||p.DEFAULT,o.lidar=o.lidar||!1,o.lidarInfo=o.lidarInfo||{pts:5,width:4,height:5,pos:0},this.core=new a(i[o.image]),this.info=e,this.core.scale.x=.8,this.core.scale.y=.8,this.core.anchor.x=.5,this.core.anchor.y=.5,this.core.road=void 0,this.core.carId=C,C+=1,this.core.agent=!1,this.core.obstacle=!0,this.core.mapId=y.CAR,o.lidar&&(this.createLidar(o.lidarInfo),this.core.lidar=this.lidar),o.motionEngine?(this.motion=o.motionEngine,this.motion.setUp(this.core,this.lidar),this.core.rotationStep=.5):this.core.rotationStep=.5,this.core.mx=this.info.mx,this.core.my=this.info.my,this.core.x=this.info.mx*d,this.core.y=this.info.my*d,this.core.checkAndsetNewRoad=function(t){return n.checkAndsetNewRoad(t)};var r=this.level.getRoad(this.core.my,this.core.mx);this.core.line=0,r&&r.setCarPosition(this.core,this.info.line)}return t.prototype.checkAndsetNewRoad=function(t){var e=this.core.road;t||(t=this.level.getRoad(this.core.my,this.core.mx)),t!=e&&(e&&e.cars.splice(e.cars.indexOf(this.core.carId),1),this.core.road=t,this.core.haveTurned=!1,this.core.optionalTurn=!1,this.core.turnedRandom=void 0,this.core.next_road=!1,t&&t.cars.push(this.core.carId))},t.prototype.reset=function(){this.core.mx=this.info.mx,this.core.my=this.info.my;var t=this.level.getRoad(this.core.my,this.core.mx);t&&t.setCarPosition(this.core,this.info.line,!0)},t.prototype.getState=function(){var t={},e=[];return this.motion.state.map(function(t){e=e.concat(t)}),e.push(this.core.v),t.linear=e,t.lidar=this.motion.state.map(function(t){return t.slice()}),t.v=this.core.v,t.a=this.core.last_a,t.steering=this.core.last_yaw_rate,t},t.prototype.step=function(t,e){if(void 0===e&&(e=null),null==e)var i=this.motion.step(t),o=i.agentCollisions,n=i.onRoad;else{var a=this.motion.actionStep(t,e);o=a.agentCollisions,n=a.onRoad}return{agentCollisions:o,onRoad:n}},t.prototype.createLidar=function(t){t.pts=t.pts||5,t.width=t.width||4,t.height=t.height||5,t.pos=t.pos||0,this.lidar=new s,this.lidar.lidarPts=[],this.lidar.collisionPts=[];var e=new r;e.pt=!1,e.alpha=.3,e.beginFill(5329233),e.drawRect(0,0,this.core.width*t.width,this.core.height*t.height),e.endFill();var i=new r;i.pt=!1,i.alpha=0,i.beginFill(5308416),i.drawRect(this.core.width-5,e.height/2,3,3),i.endFill();var o=new r;o.pt=!1,o.alpha=0,o.beginFill(5308416),o.drawRect(-1,e.height/2-2,3,3),o.endFill();var n=new r;n.pt=!1,n.alpha=0,n.beginFill(5308416),n.drawRect(this.core.width/2,e.height/2-this.core.height/2+5,3,3),n.endFill();var a=new r;a.pt=!1,a.alpha=0,a.beginFill(5308416),a.drawRect(this.core.width/2,e.height/2+this.core.height/2-8,3,3),a.endFill(),o.x-=t.pos*this.core.width,i.x-=t.pos*this.core.width,a.x-=t.pos*this.core.width,n.x-=t.pos*this.core.width;for(var h=e.width/t.pts,c=e.height/t.pts,l=t.pts-1;l>=0;l--)for(var d=0;do.x&&i.xo.y&&i.y=4||!t)&&(r=!0),{agentCollisions:o,onRoad:r}},t.prototype.setState=function(t){for(var e=0,i=0;ithis.state[o][n]||t[a].mapId==y.ROAD&&this.state[o][n]==y.DEFAULT)&&(this.state[o][n]=t[a].mapId)}e+=1}},t}(),b=(I=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])},function(t,e){function i(){this.constructor=t}I(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),R=function(t){function e(e,i){var o=t.call(this,e)||this;return o.maxSpeed=1,o.rotationStep=i.rotationStep||.5,o.actions=i.actions||["UP","LEFT","RIGHT","DOWN","WAIT"],o}return b(e,t),e.prototype.setUp=function(t,e){this.car=t,this.lidar=e,this.state=[];for(var i=0;i0&&(this.car.v=0,this.car.vy=0),{agentCollisions:i,onRoad:o}},e}(M),E=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])};return function(e,i){function o(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(o.prototype=i.prototype,new o)}}(),S=function(t){function e(e){var i=t.call(this,e)||this;return i.map=i.level.getMap(),i.mapSizeY=i.map.length,i.mapSizeX=i.map[0].length,i.rotationStep=.5,i.rotationToNextCase={},i.rotationToNextCase[0]={mx:1,my:0},i.rotationToNextCase[.5]={mx:0,my:1},i.rotationToNextCase[1]={mx:-1,my:0},i.rotationToNextCase[1.5]={mx:0,my:-1},i.rotationToNextCase[-.5]={mx:0,my:-1},i.rotationToNextCase[-1]={mx:-1,my:0},i.rotationToNextCase[-1.5]={mx:0,my:1},i}return E(e,t),e.prototype.setUp=function(t,e){this.car=t,this.lidar=e,this.state=[];for(var i=0;i=this.mapSizeY||t<0||t>=this.mapSizeX||0==this.map[e][t])return!1;if(i&&this.level.getRoad(e,t).cars.length>0)return!1;return!0},e.prototype.autoRotation=function(){var t=d+d/3,e=d-d/3.5,i=d;if(this.car.next_road){var o=Math.abs((this.car.next_road.outroad.y+d/2-this.car.y)*this.car.next_road.outroad_np.my),n=Math.abs((this.car.next_road.outroad.x+d/2-this.car.x)*this.car.next_road.outroad_np.mx);if(0==this.car.next_road.rotation_type&&othis.car.next_road.outroad.x+d/2?(this.car.x=this.car.next_road.outroad.x+d-d/2-d/4,this.car.y=this.car.next_road.outroad.y):0!=n&&this.car.ythis.car.next_road.outroad.y+d/2&&(this.car.y=this.car.next_road.outroad.y+d-d/2-d/4,this.car.x=this.car.next_road.outroad.x),void(this.car.next_road=void 0)}else{var a=this.car.rotation/Math.PI,r=(this.car.rotation/Math.PI+.5)%2,s=(this.car.rotation/Math.PI-.5)%2,h=this.rotationToNextCase[a],c=this.rotationToNextCase[r],l=this.rotationToNextCase[s],p=!1,y=this.car.mx+h.mx,u=this.car.my+h.my;if(this.isRoad(y,u)?this.car.haveTurned||this.car.turnedRandom?!this.car.haveTurned&&this.car.turnedRandom<.5&&this.isRoad(this.car.mx+c.mx,this.car.my+c.my)?(p=!0,this.car.optionalTurn=!0):!this.car.haveTurned&&this.car.turnedRandom>=.5&&this.isRoad(this.car.mx+l.mx,this.car.my+l.my)&&(p=!0,this.car.optionalTurn=!0):this.car.turnedRandom=Math.random():(p=!0,this.car.optionalTurn=!1),p)for(var x=[(a+.5)%2,(a-.5)%2,null],v=0;v=1&&n&&n.core.line==i&&(i=0==i?1:0),e.line=i,e.a=0,e.v=0,e.x=t.x,e.y=t.y,e.x+=d/2,e.y+=d/2;var a=1*d/4;t.orientation=Math.floor(t.orientation/e.rotationStep)*e.rotationStep;var r=-t.orientation*Math.PI,s=0*Math.cos(r)-a*Math.sin(r),h=Math.cos(r)*a+0*Math.sin(r),c=0==i?1:-1,l=0==i?0:Math.PI;e.x+=c*Math.round(s),e.y+=c*Math.round(h),e.mx=Math.floor(e.x/d),e.my=Math.floor(e.y/d),e.rotation=r+l,e.checkAndsetNewRoad(t)},t.prototype.createAsset=function(t,e,i,o){var n=new a(i[t]);n.obstacle=!1,n.type=o,n.mapId=0,n.x=e.x,n.y=e.y,this.level.addChild(n),this.assets.push(n)},t.prototype.createMap=function(t,e,i,o){if(void 0===o&&(o=!0),o)for(var n=0;n0?o=-1:e||(o=-1),o},e.prototype.getLastReward=function(){return this.lastReward},e.prototype.step=function(t,e,i){if(void 0===e&&(e=null),void 0===i&&(i=!0),!i||this.steping){for(var o=0;o0&&0==this.car.a?this.car.v=Math.max(0,this.car.v-.01):this.car.v<0&&0==this.car.a&&(this.car.v=Math.min(0,this.car.v+.01)),this.car.a>0&&this.car.v>=0?this.car.v=Math.min(this.maxSpeed,this.car.v+.005*this.car.a):this.car.a>0&&this.car.v<0&&(this.car.v=Math.min(this.maxSpeed,this.car.v+.03*this.car.a)),this.car.a<0&&this.car.v<=0?this.car.v=Math.max(-this.maxSpeed,this.car.v+.005*this.car.a):this.car.a<0&&this.car.v>0&&(this.car.v=Math.max(-this.maxSpeed,this.car.v+.03*this.car.a)),0==this.car.yaw_rate)this.car.x+=this.car.v*Math.cos(this.car.rotation)*t,this.car.y+=this.car.v*Math.sin(this.car.rotation)*t;else{var e=.01*this.car.yaw_rate*(this.car.v+.001)*Math.PI;this.car.x+=this.car.v/e*(Math.sin(this.car.rotation+e*t)-Math.sin(this.car.rotation)),this.car.y+=this.car.v/e*(Math.cos(this.car.rotation)-Math.cos(this.car.rotation+e*t)),this.car.rotation+=e*t}this.car.mx=Math.floor(this.car.x/d),this.car.my=Math.floor(this.car.y/d),this.car.checkAndsetNewRoad(),this.lidar.x=this.car.x,this.lidar.y=this.car.y,this.lidar.rotation=this.car.rotation;var i=this.detectInteractions(!0,!0),o=i.agentCollisions,n=i.onRoad;return o.length>0&&(this.car.v=0,this.car.vy=0),{agentCollisions:o,onRoad:n}},e}(M),j={env:k,editor:U,level:{fullCity:"embedded://level/fullCity",level1:"embedded://level/level1",level2:"embedded://level/level2",level3:"embedded://level/level3",level0:"embedded://level/level0"},motion:{BasicMotion:R,ControlMotion:B}};e.default=j}]).default; \ No newline at end of file diff --git a/demo/webapp/ddpg-traffic.html b/demo/webapp/ddpg-traffic.html index ff6108b..f522764 100644 --- a/demo/webapp/ddpg-traffic.html +++ b/demo/webapp/ddpg-traffic.html @@ -32,7 +32,6 @@
  • Deep Deterministic Policy Gradients (DDPG): paper
  • Parameter Space Noise for Exploration: paper
  • -
  • Prioritized Experience Replay: paper

You can use the arrow keys to control the car by yourself.

@@ -58,6 +57,7 @@ + diff --git a/demo/webapp/ddpg.html b/demo/webapp/ddpg.html index 1fa1e0a..da58b53 100644 --- a/demo/webapp/ddpg.html +++ b/demo/webapp/ddpg.html @@ -32,7 +32,6 @@
  • Deep Deterministic Policy Gradients (DDPG): paper
  • Parameter Space Noise for Exploration: paper
  • -
  • Prioritized Experience Replay: paper

You can use the arrow keys to control the car by yourself.

@@ -57,6 +56,7 @@ + diff --git a/demo/webapp/index.html b/demo/webapp/index.html index 09c30eb..8a3f655 100644 --- a/demo/webapp/index.html +++ b/demo/webapp/index.html @@ -71,7 +71,6 @@
  • Deep Deterministic Policy Gradients (DDPG): paper
  • Parameter Space Noise for Exploration: paper
  • -
  • Prioritized Experience Replay: paper

@@ -90,7 +89,6 @@

  • Deep Deterministic Policy Gradients (DDPG): paper
  • Parameter Space Noise for Exploration: paper
  • -
  • Prioritized Experience Replay: paper

The control is based on two continuous values for the throttle and steering angle of the car. diff --git a/demo/webapp/public/js/ddpg-traffic/index.js b/demo/webapp/public/js/ddpg-traffic/index.js index 141181d..db93f4d 100644 --- a/demo/webapp/public/js/ddpg-traffic/index.js +++ b/demo/webapp/public/js/ddpg-traffic/index.js @@ -63,8 +63,7 @@ env.load().then(() => { }); env.addEvent("load", () => { - //agent.restore("ddpg-traffic", "model-ddpg-traffic") - agent.restore("four", "model-ddpg-traffic-epoch-120"); + agent.restore("ddpg-traffic", "model-ddpg-traffic-epoch-120"); }); }); diff --git a/demo/webapp/public/js/ddpg/ddpg.js b/demo/webapp/public/js/ddpg/ddpg.js index e8175c4..1f79b99 100644 --- a/demo/webapp/public/js/ddpg/ddpg.js +++ b/demo/webapp/public/js/ddpg/ddpg.js @@ -179,6 +179,7 @@ class DDPG { return erros.mean(); }, true, this.criticWeights); + // For experience Replay this.memory.appendBackWithCost(batch, costs); const loss = criticLoss.buffer().values[0]; diff --git a/demo/webapp/public/js/ddpg/ddpg_agent.js b/demo/webapp/public/js/ddpg/ddpg_agent.js index bee45ee..95f922f 100644 --- a/demo/webapp/public/js/ddpg/ddpg_agent.js +++ b/demo/webapp/public/js/ddpg/ddpg_agent.js @@ -25,7 +25,7 @@ class DDPGAgent { "nbEpochs": config.nbEpochs || 200, "nbEpochsCycle": config.nbEpochsCycle || 10, "nbTrainSteps": config.nbTrainSteps || 110, - "tau": config.tau || 0.01, + "tau": config.tau || 0.008, "initialStddev": config.initialStddev || 0.1, "desiredActionStddev": config.desiredActionStddev || 0.1, "adoptionCoefficient": config.adoptionCoefficient || 1.01, @@ -48,7 +48,7 @@ class DDPGAgent { // Buffer replay // The baseline use 1e6 but this size should be enough for this problem - this.memory = new Memory(this.config.memorySize); + this.memory = new PrioritizedMemory(this.config.memorySize); // Actor and Critic are from js/DDPG/models.js this.actor = new Actor(this.config); this.critic = new Critic(this.config); @@ -75,8 +75,8 @@ class DDPGAgent { /* Restore the weights of the network */ - const critic = await tf.loadModel('http://localhost:3000/public/models/'+folder+'/critic-'+name+'.json'); - const actor = await tf.loadModel("http://localhost:3000/public/models/"+folder+"/actor-"+name+".json"); + const critic = await tf.loadModel('https://metacar-project.com/public/models/'+folder+'/critic-'+name+'.json'); + const actor = await tf.loadModel("https://metacar-project.com/public/models/"+folder+"/actor-"+name+".json"); this.ddpg.critic = copyFromSave(critic, Critic, this.config, this.ddpg.obsInput, this.ddpg.actionInput); this.ddpg.actor = copyFromSave(actor, Actor, this.config, this.ddpg.obsInput, this.ddpg.actionInput); diff --git a/demo/webapp/public/js/ddpg/index.js b/demo/webapp/public/js/ddpg/index.js index 984feae..bbe6fd3 100644 --- a/demo/webapp/public/js/ddpg/index.js +++ b/demo/webapp/public/js/ddpg/index.js @@ -7,10 +7,7 @@ env.setAgentLidar({pts: 5, width: 3, height: 7, pos: -0.5}) // js/DDPG/ddpg.js var agent = new DDPGAgent(env, { - stateSize: 26, - resetEpisode: true, - saveDuringTraining: true, - saveInterval: 10, + stateSize: 26 }); initMetricsContainer("statContainer", ["Reward", "ActorLoss", "CriticLoss", "EpisodeDuration", "NoiseDistance"]); diff --git a/demo/webapp/public/js/ddpg/memory.js b/demo/webapp/public/js/ddpg/memory.js index b4921fb..fc8db0a 100644 --- a/demo/webapp/public/js/ddpg/memory.js +++ b/demo/webapp/public/js/ddpg/memory.js @@ -6,8 +6,24 @@ class Memory { */ constructor(maxlen){ this.maxlen = maxlen; - this.buffer = []; - this.priorBuffer = []; + this.length = 0; + this.start = 0; + + this.obs0List = Array.apply(null, Array(maxlen)).map(Number.prototype.valueOf, 0); + this.obs1List = Array.apply(null, Array(maxlen)).map(Number.prototype.valueOf, 0); + this.rewardsList = Array.apply(null, Array(maxlen)).map(Number.prototype.valueOf, 0); + this.actionsList = Array.apply(null, Array(maxlen)).map(Number.prototype.valueOf, 0); + this.terminals1List = Array.apply(null, Array(maxlen)).map(Number.prototype.valueOf, 0); + } + + /** + * @param idx (number) + */ + getItem(idx){ + if (idx < 0 || idx >= this.length){ + console.error("Memory.getItem: idx not in range."); + } + return this.data[(this.start + idx) % this.maxlen] } /** @@ -16,92 +32,7 @@ class Memory { * @return batch [] */ getBatch(batchSize){ - const batch = { - 'obs0': [], - 'obs1': [], - 'rewards': [], - 'actions': [], - 'terminals': [], - }; - - if (batchSize > this.priorBuffer.length){ - console.warn("The size of the replay buffer is < to the batchSize. Return empty batch."); - return batch; - } - - for (let b=0; b < batchSize/2; b++){ - let id = Math.floor(Math.random() * this.priorBuffer.length); - batch.obs0.push(this.priorBuffer[id].obs0); - batch.obs1.push(this.priorBuffer[id].obs1); - batch.rewards.push(this.priorBuffer[id].reward); - batch.actions.push(this.priorBuffer[id].action); - batch.terminals.push(this.priorBuffer[id].terminal); - } - return batch - } - - _bufferBatch(batchSize){ - const batch = { - 'obs0': [], - 'obs1': [], - 'rewards': [], - 'actions': [], - 'terminals': [], - }; - - for (let b=0; b < batchSize/2; b++){ - let nElem = this.buffer.pop(); - batch.obs0.push(nElem.obs0); - batch.obs1.push(nElem.obs1); - batch.rewards.push(nElem.reward); - batch.actions.push(nElem.action); - batch.terminals.push(nElem.terminal); - } - - for (let b=0; b < batchSize/2; b++){ - let id = Math.floor(Math.random() * this.buffer.length); - batch.obs0.push(this.buffer[id].obs0); - batch.obs1.push(this.buffer[id].obs1); - batch.rewards.push(this.buffer[id].reward); - batch.actions.push(this.buffer[id].action); - batch.terminals.push(this.buffer[id].terminal); - this.buffer.splice(id, 1); - } - - return batch - } - - _addRandomBufferBatch(batchSize, batch){ - for (let b=0; b < batchSize; b++){ - let id = Math.floor(Math.random() * this.buffer.length); - batch.obs0.push(this.buffer[id].obs0); - batch.obs1.push(this.buffer[id].obs1); - batch.rewards.push(this.buffer[id].reward); - batch.actions.push(this.buffer[id].action); - batch.terminals.push(this.buffer[id].terminal); - this.buffer.splice(id, 1); - } - return batch - } - - /** - * Sample a batch - * @param batchSize (number) - * @return batch [] - */ - popBatch(batchSize){ - let originalBatchSize = batchSize; - let priorBufferBatchSize; - let bufferBatchSize; - if (batchSize % 2 != 0){ - console.warn("Batch size should be a even.") - } - if (this.priorBuffer.length < batchSize/2){ - //console.log("get full batch from buffer"); - const batch = this._bufferBatch(batchSize); - console.assert(batch.obs0.length == batchSize); - return batch; - } + const arrLength = this.length; const batch = { 'obs0': [], 'obs1': [], @@ -110,80 +41,19 @@ class Memory { 'terminals': [], }; if (batchSize > this.length){ - console.warn("The size of the replay buffer is < to the batchSize. Return empty batch."); return batch; } - - if (this.buffer.length > 0){ - //console.log("Get half of prior and other from buffer."); - batchSize = batchSize / 2; - } - else{ - //console.log("Get all from priorBuffer"); - } - for (let b=0; b < batchSize; b++){ - let id = Math.floor(Math.random() * this.priorBuffer.length); - batch.obs0.push(this.priorBuffer[id].obs0); - batch.obs1.push(this.priorBuffer[id].obs1); - batch.rewards.push(this.priorBuffer[id].reward); - batch.actions.push(this.priorBuffer[id].action); - batch.terminals.push(this.priorBuffer[id].terminal); - this.priorBuffer.splice(id, 1); + let id = Math.floor(Math.random() * arrLength); + batch.obs0.push(this.obs0List[id]); + batch.obs1.push(this.obs1List[id]); + batch.rewards.push(this.rewardsList[id]); + batch.actions.push(this.actionsList[id]); + batch.terminals.push(this.terminals1List[id]); } - - if (this.buffer.length > 0){ - this._addRandomBufferBatch(batchSize, batch); - } - console.assert(batch.obs0.length == originalBatchSize); return batch } - _insert(element, array) { - if (array.length == 0 || element.cost < array[0].cost || array[0].cost == null){ - array.unshift(element); - return array; - } - array.splice(this._locationOf(element, array) + 1, 0, element); - return array; - } - - _locationOf(element, array, start, end) { - start = start || 0; - end = end || array.length; - - var pivot = parseInt(start + (end - start) / 2, 10); - - if (end-start <= 1 || array[pivot] === element) return pivot; - - if (array[pivot].cost != null && array[pivot].cost < element.cost) { - return this._locationOf(element, array, pivot, end); - } else { - return this._locationOf(element, array, start, pivot); - } - } - - /** - * @param batch (Object) from getBatch() - * @param cost (number) Cost associated with each row of the batch - */ - appendBackWithCost(batch, costs){ - for (let b=0; b < batch.obs0.length; b++){ - if (this.buffer.length == this.maxlen){ - this.buffer.shift(); - } - this._insert({ - obs0: batch.obs0[b], - action: batch.actions[b], - reward: batch.rewards[b], - obs1: batch.obs1[b], - terminal: batch.terminals[b], - cost: costs[b] - }, this.buffer); - } - console.assert(this.buffer.length <= this.maxlen); - } - /** * @param obs0 [] * @param action (number) @@ -191,50 +61,23 @@ class Memory { * @param obs1 [] * @param terminal1 (boolean) */ - append(obs0, action, reward, obs1, terminal){ - if (this.priorBuffer.length == this.maxlen){ - this.priorBuffer.shift(); + append(obs0, action, reward, obs1, terminal1){ + if (this.length < this.maxlen){ + this.length += 1; } - this.priorBuffer.push({ - obs0: obs0, - action: action, - reward: reward, - obs1: obs1, - terminal: terminal, - cost: null - }); - console.assert(this.priorBuffer.length <= this.maxlen); + else if (this.length == this.maxlen) { + //this.obs0List[(this.start + this.length - 1) % this.maxlen].dispose(); + //this.obs1List[(this.start + this.length - 1) % this.maxlen].dispose(); + //this.actionsList[(this.start + this.length - 1) % this.maxlen].dispose(); + this.start = (this.start + 1) % this.maxlen; + } + else { + console.error("Memory.append: This should never be printed"); + } + this.obs0List[(this.start + this.length - 1) % this.maxlen] = obs0; + this.obs1List[(this.start + this.length - 1) % this.maxlen] = obs1; + this.rewardsList[(this.start + this.length - 1) % this.maxlen] = reward; + this.actionsList[(this.start + this.length - 1) % this.maxlen] = action; + this.terminals1List[(this.start + this.length - 1) % this.maxlen] = terminal1; } -} -/* -var mem = new Memory(20000); -Math.seedrandom(0); -console.assert(mem.length == 0); - -var array = []; -for (let i=1; i < 40000; i++){ - mem.append("obs0-"+i, "action-"+i, "reward-"+i, "obs1-"+i, "terminal-"+i); -} - -console.assert(mem.length == 20000); -console.assert(mem.list[0].obs0 == "obs0-20000"); -console.assert(mem.list[19999].obs0 == "obs0-39999"); - -let batch = mem.getBatch(32); - -console.assert(batch.obs0.length == 32); -console.assert(mem.length == 20000 - 32); - -let costs = []; -for (i=31; i >= 0; i--){ - costs.push(i); -} -mem.appendBackWithCost(batch, costs); - -console.log(mem.list); - -/* -for (let i=1; i < 64; i++){ - mem.append("obs0-"+i, "action-"+i, "reward-"+i, "obs1-"+i, "terminal-"+i); -} -*/ \ No newline at end of file +} \ No newline at end of file diff --git a/demo/webapp/public/js/ddpg/prioritized_memory.js b/demo/webapp/public/js/ddpg/prioritized_memory.js new file mode 100644 index 0000000..5a7f74b --- /dev/null +++ b/demo/webapp/public/js/ddpg/prioritized_memory.js @@ -0,0 +1,240 @@ + +class PrioritizedMemory { + + /** + * @param maxlen (number) Buffer limit + */ + constructor(maxlen){ + this.maxlen = maxlen; + this.buffer = []; + this.priorBuffer = []; + } + + /** + * Sample a batch + * @param batchSize (number) + * @return batch [] + */ + getBatch(batchSize){ + const batch = { + 'obs0': [], + 'obs1': [], + 'rewards': [], + 'actions': [], + 'terminals': [], + }; + + if (batchSize > this.priorBuffer.length){ + console.warn("The size of the replay buffer is < to the batchSize. Return empty batch."); + return batch; + } + + for (let b=0; b < batchSize/2; b++){ + let id = Math.floor(Math.random() * this.priorBuffer.length); + batch.obs0.push(this.priorBuffer[id].obs0); + batch.obs1.push(this.priorBuffer[id].obs1); + batch.rewards.push(this.priorBuffer[id].reward); + batch.actions.push(this.priorBuffer[id].action); + batch.terminals.push(this.priorBuffer[id].terminal); + } + return batch + } + + _bufferBatch(batchSize){ + const batch = { + 'obs0': [], + 'obs1': [], + 'rewards': [], + 'actions': [], + 'terminals': [], + }; + + for (let b=0; b < batchSize/2; b++){ + let nElem = this.buffer.pop(); + batch.obs0.push(nElem.obs0); + batch.obs1.push(nElem.obs1); + batch.rewards.push(nElem.reward); + batch.actions.push(nElem.action); + batch.terminals.push(nElem.terminal); + } + + for (let b=0; b < batchSize/2; b++){ + let id = Math.floor(Math.random() * this.buffer.length); + batch.obs0.push(this.buffer[id].obs0); + batch.obs1.push(this.buffer[id].obs1); + batch.rewards.push(this.buffer[id].reward); + batch.actions.push(this.buffer[id].action); + batch.terminals.push(this.buffer[id].terminal); + this.buffer.splice(id, 1); + } + + return batch + } + + _addRandomBufferBatch(batchSize, batch){ + for (let b=0; b < batchSize; b++){ + let id = Math.floor(Math.random() * this.buffer.length); + batch.obs0.push(this.buffer[id].obs0); + batch.obs1.push(this.buffer[id].obs1); + batch.rewards.push(this.buffer[id].reward); + batch.actions.push(this.buffer[id].action); + batch.terminals.push(this.buffer[id].terminal); + this.buffer.splice(id, 1); + } + return batch + } + + /** + * Sample a batch + * @param batchSize (number) + * @return batch [] + */ + popBatch(batchSize){ + let originalBatchSize = batchSize; + let priorBufferBatchSize; + let bufferBatchSize; + if (batchSize % 2 != 0){ + console.warn("Batch size should be a even.") + } + if (this.priorBuffer.length < batchSize/2){ + //console.log("get full batch from buffer"); + const batch = this._bufferBatch(batchSize); + console.assert(batch.obs0.length == batchSize); + return batch; + } + const batch = { + 'obs0': [], + 'obs1': [], + 'rewards': [], + 'actions': [], + 'terminals': [], + }; + if (batchSize > this.length){ + console.warn("The size of the replay buffer is < to the batchSize. Return empty batch."); + return batch; + } + + if (this.buffer.length > 0){ + //console.log("Get half of prior and other from buffer."); + batchSize = batchSize / 2; + } + else{ + //console.log("Get all from priorBuffer"); + } + + for (let b=0; b < batchSize; b++){ + let id = Math.floor(Math.random() * this.priorBuffer.length); + batch.obs0.push(this.priorBuffer[id].obs0); + batch.obs1.push(this.priorBuffer[id].obs1); + batch.rewards.push(this.priorBuffer[id].reward); + batch.actions.push(this.priorBuffer[id].action); + batch.terminals.push(this.priorBuffer[id].terminal); + this.priorBuffer.splice(id, 1); + } + + if (this.buffer.length > 0){ + this._addRandomBufferBatch(batchSize, batch); + } + console.assert(batch.obs0.length == originalBatchSize); + return batch + } + + _insert(element, array) { + if (array.length == 0 || element.cost < array[0].cost || array[0].cost == null){ + array.unshift(element); + return array; + } + array.splice(this._locationOf(element, array) + 1, 0, element); + return array; + } + + _locationOf(element, array, start, end) { + start = start || 0; + end = end || array.length; + + var pivot = parseInt(start + (end - start) / 2, 10); + + if (end-start <= 1 || array[pivot] === element) return pivot; + + if (array[pivot].cost != null && array[pivot].cost < element.cost) { + return this._locationOf(element, array, pivot, end); + } else { + return this._locationOf(element, array, start, pivot); + } + } + + /** + * @param batch (Object) from getBatch() + * @param cost (number) Cost associated with each row of the batch + */ + appendBackWithCost(batch, costs){ + for (let b=0; b < batch.obs0.length; b++){ + if (this.buffer.length == this.maxlen){ + this.buffer.shift(); + } + this._insert({ + obs0: batch.obs0[b], + action: batch.actions[b], + reward: batch.rewards[b], + obs1: batch.obs1[b], + terminal: batch.terminals[b], + cost: costs[b] + }, this.buffer); + } + console.assert(this.buffer.length <= this.maxlen); + } + + /** + * @param obs0 [] + * @param action (number) + * @param reward (number) + * @param obs1 [] + * @param terminal1 (boolean) + */ + append(obs0, action, reward, obs1, terminal){ + if (this.priorBuffer.length == this.maxlen){ + this.priorBuffer.shift(); + } + this.priorBuffer.push({ + obs0: obs0, + action: action, + reward: reward, + obs1: obs1, + terminal: terminal, + cost: null + }); + console.assert(this.priorBuffer.length <= this.maxlen); + } +} +/* +var mem = new Memory(20000); +Math.seedrandom(0); +console.assert(mem.length == 0); + +var array = []; +for (let i=1; i < 40000; i++){ + mem.append("obs0-"+i, "action-"+i, "reward-"+i, "obs1-"+i, "terminal-"+i); +} + +console.assert(mem.length == 20000); +console.assert(mem.list[0].obs0 == "obs0-20000"); +console.assert(mem.list[19999].obs0 == "obs0-39999"); + +let batch = mem.getBatch(32); + +console.assert(batch.obs0.length == 32); +console.assert(mem.length == 20000 - 32); + +let costs = []; +for (i=31; i >= 0; i--){ + costs.push(i); +} +mem.appendBackWithCost(batch, costs); + +console.log(mem.list); + +/* +for (let i=1; i < 64; i++){ + mem.append("obs0-"+i, "action-"+i, "reward-"+i, "obs1-"+i, "terminal-"+i); +} +*/ \ No newline at end of file diff --git a/demo/webapp/public/models/ddpg-traffic/actor-model-ddpg-traffic-epoch-120.json b/demo/webapp/public/models/ddpg-traffic/actor-model-ddpg-traffic-epoch-120.json new file mode 100644 index 0000000..728c09d --- /dev/null +++ b/demo/webapp/public/models/ddpg-traffic/actor-model-ddpg-traffic-epoch-120.json @@ -0,0 +1 @@ +{"modelTopology":{"class_name":"Model","config":{"name":"model7","layers":[{"name":"input1","class_name":"InputLayer","config":{"batch_input_shape":[null,50],"dtype":"float32","sparse":false,"name":"input1"},"inbound_nodes":[]},{"name":"dense_Dense22","class_name":"Dense","config":{"units":128,"activation":"relu","use_bias":true,"kernel_initializer":{"class_name":"VarianceScaling","config":{"scale":1,"mode":"fan_avg","distribution":"uniform","seed":0}},"bias_initializer":{"class_name":"Zeros","config":{}},"kernel_regularizer":null,"bias_regularizer":null,"activity_regularizer":null,"kernel_constraint":null,"bias_constraint":null,"name":"dense_Dense22","trainable":true},"inbound_nodes":[[["input1",0,0,{}]]]},{"name":"dense_Dense23","class_name":"Dense","config":{"units":64,"activation":"relu","use_bias":true,"kernel_initializer":{"class_name":"VarianceScaling","config":{"scale":1,"mode":"fan_avg","distribution":"uniform","seed":0}},"bias_initializer":{"class_name":"Zeros","config":{}},"kernel_regularizer":null,"bias_regularizer":null,"activity_regularizer":null,"kernel_constraint":null,"bias_constraint":null,"name":"dense_Dense23","trainable":true},"inbound_nodes":[[["dense_Dense22",0,0,{}]]]},{"name":"dense_Dense24","class_name":"Dense","config":{"units":2,"activation":"tanh","use_bias":true,"kernel_initializer":{"class_name":"RandomUniform","config":{"minval":0.003,"maxval":0.003,"seed":0}},"bias_initializer":{"class_name":"Zeros","config":{}},"kernel_regularizer":null,"bias_regularizer":null,"activity_regularizer":null,"kernel_constraint":null,"bias_constraint":null,"name":"dense_Dense24","trainable":true},"inbound_nodes":[[["dense_Dense23",0,0,{}]]]}],"input_layers":[["input1",0,0]],"output_layers":[["dense_Dense24",0,0]]},"keras_version":"tfjs-layers 0.6.6","backend":"tensor_flow.js"},"weightsManifest":[{"paths":["./actor-model-ddpg-traffic-epoch-120.weights.bin"],"weights":[{"name":"dense_Dense22/kernel","shape":[50,128],"dtype":"float32"},{"name":"dense_Dense22/bias","shape":[128],"dtype":"float32"},{"name":"dense_Dense23/kernel","shape":[128,64],"dtype":"float32"},{"name":"dense_Dense23/bias","shape":[64],"dtype":"float32"},{"name":"dense_Dense24/kernel","shape":[64,2],"dtype":"float32"},{"name":"dense_Dense24/bias","shape":[2],"dtype":"float32"}]}]} \ No newline at end of file diff --git a/demo/webapp/public/models/ddpg-traffic/actor-model-ddpg-traffic-epoch-120.weights.bin b/demo/webapp/public/models/ddpg-traffic/actor-model-ddpg-traffic-epoch-120.weights.bin new file mode 100644 index 0000000000000000000000000000000000000000..224b9a3344182f8d61590c561cdd9539ceeca32d GIT binary patch literal 59656 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 z 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�UQeVL!-nK-s$gfTlb6@eyf!h-pp}l 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 diff --git a/demo/webapp/public/models/ddpg-traffic/critic-model-ddpg-traffic-epoch-120.json b/demo/webapp/public/models/ddpg-traffic/critic-model-ddpg-traffic-epoch-120.json new file mode 100644 index 0000000..2f54e16 --- /dev/null +++ b/demo/webapp/public/models/ddpg-traffic/critic-model-ddpg-traffic-epoch-120.json @@ -0,0 +1 @@ +{"modelTopology":{"class_name":"Model","config":{"name":"model6","layers":[{"name":"input2","class_name":"InputLayer","config":{"batch_input_shape":[null,2],"dtype":"float32","sparse":false,"name":"input2"},"inbound_nodes":[]},{"name":"input1","class_name":"InputLayer","config":{"batch_input_shape":[null,50],"dtype":"float32","sparse":false,"name":"input1"},"inbound_nodes":[]},{"name":"dense_Dense19","class_name":"Dense","config":{"units":128,"activation":"linear","use_bias":true,"kernel_initializer":{"class_name":"VarianceScaling","config":{"scale":1,"mode":"fan_avg","distribution":"uniform","seed":0}},"bias_initializer":{"class_name":"Zeros","config":{}},"kernel_regularizer":null,"bias_regularizer":null,"activity_regularizer":null,"kernel_constraint":null,"bias_constraint":null,"name":"dense_Dense19","trainable":true},"inbound_nodes":[[["input2",0,0,{}]]]},{"name":"dense_Dense18","class_name":"Dense","config":{"units":128,"activation":"linear","use_bias":true,"kernel_initializer":{"class_name":"VarianceScaling","config":{"scale":1,"mode":"fan_avg","distribution":"uniform","seed":0}},"bias_initializer":{"class_name":"Zeros","config":{}},"kernel_regularizer":null,"bias_regularizer":null,"activity_regularizer":null,"kernel_constraint":null,"bias_constraint":null,"name":"dense_Dense18","trainable":true},"inbound_nodes":[[["input1",0,0,{}]]]},{"name":"add_Add3","class_name":"Add","config":{"name":"add_Add3","trainable":true},"inbound_nodes":[[["dense_Dense19",0,0,{}],["dense_Dense18",0,0,{}]]]},{"name":"dense_Dense20","class_name":"Dense","config":{"units":64,"activation":"relu","use_bias":true,"kernel_initializer":{"class_name":"VarianceScaling","config":{"scale":1,"mode":"fan_avg","distribution":"uniform","seed":0}},"bias_initializer":{"class_name":"Zeros","config":{}},"kernel_regularizer":null,"bias_regularizer":null,"activity_regularizer":null,"kernel_constraint":null,"bias_constraint":null,"name":"dense_Dense20","trainable":true},"inbound_nodes":[[["add_Add3",0,0,{}]]]},{"name":"dense_Dense21","class_name":"Dense","config":{"units":1,"activation":"linear","use_bias":true,"kernel_initializer":{"class_name":"RandomUniform","config":{"minval":0.003,"maxval":0.003,"seed":0}},"bias_initializer":{"class_name":"Zeros","config":{}},"kernel_regularizer":null,"bias_regularizer":null,"activity_regularizer":null,"kernel_constraint":null,"bias_constraint":null,"name":"dense_Dense21","trainable":true},"inbound_nodes":[[["dense_Dense20",0,0,{}]]]}],"input_layers":[["input1",0,0],["input2",0,0]],"output_layers":[["dense_Dense21",0,0]]},"keras_version":"tfjs-layers 0.6.6","backend":"tensor_flow.js"},"weightsManifest":[{"paths":["./critic-model-ddpg-traffic-epoch-120.weights.bin"],"weights":[{"name":"dense_Dense19/kernel","shape":[2,128],"dtype":"float32"},{"name":"dense_Dense19/bias","shape":[128],"dtype":"float32"},{"name":"dense_Dense18/kernel","shape":[50,128],"dtype":"float32"},{"name":"dense_Dense18/bias","shape":[128],"dtype":"float32"},{"name":"dense_Dense20/kernel","shape":[128,64],"dtype":"float32"},{"name":"dense_Dense20/bias","shape":[64],"dtype":"float32"},{"name":"dense_Dense21/kernel","shape":[64,1],"dtype":"float32"},{"name":"dense_Dense21/bias","shape":[1],"dtype":"float32"}]}]} \ No newline at end of file diff --git a/demo/webapp/public/models/ddpg-traffic/critic-model-ddpg-traffic-epoch-120.weights.bin b/demo/webapp/public/models/ddpg-traffic/critic-model-ddpg-traffic-epoch-120.weights.bin new file mode 100644 index 0000000000000000000000000000000000000000..461b2259e51667821f09c8eb3e132f2ddd611401 GIT binary patch literal 60932 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 d=0;do.x&&i.xo.y&&i.y=4||!t)&&(r=!0),{agentCollisions:o,onRoad:r}},t.prototype.setState=function(t){for(var e=0,i=0;ithis.state[o][n]||t[a].mapId==u.ROAD&&this.state[o][n]==u.DEFAULT)&&(this.state[o][n]=t[a].mapId)}e+=1}},t}(),b=(I=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])},function(t,e){function i(){this.constructor=t}I(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),R=function(t){function e(e,i){var o=t.call(this,e)||this;return o.rotationStep=i.rotationStep||.5,o.actions=i.actions||["UP","LEFT","RIGHT","DOWN","WAIT"],o}return b(e,t),e.prototype.setUp=function(t,e){this.car=t,this.lidar=e,this.state=[];for(var i=0;i0&&(this.car.v=0,this.car.vy=0),{agentCollisions:i,onRoad:o}},e}(M),E=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])};return function(e,i){function o(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(o.prototype=i.prototype,new o)}}(),L=function(t){function e(e){var i=t.call(this,e)||this;return i.map=i.level.getMap(),i.mapSizeY=i.map.length,i.mapSizeX=i.map[0].length,i.rotationStep=.5,i.rotationToNextCase={},i.rotationToNextCase[0]={mx:1,my:0},i.rotationToNextCase[.5]={mx:0,my:1},i.rotationToNextCase[1]={mx:-1,my:0},i.rotationToNextCase[1.5]={mx:0,my:-1},i.rotationToNextCase[-.5]={mx:0,my:-1},i.rotationToNextCase[-1]={mx:-1,my:0},i.rotationToNextCase[-1.5]={mx:0,my:1},i}return E(e,t),e.prototype.setUp=function(t,e){this.car=t,this.lidar=e,this.state=[];for(var i=0;i=this.mapSizeY||t<0||t>=this.mapSizeX||0==this.map[e][t])return!1;if(i&&this.level.getRoad(e,t).cars.length>0)return!1;return!0},e.prototype.autoRotation=function(){var t=d+d/3,e=d-d/3.5,i=d;if(this.car.next_road){var o=Math.abs((this.car.next_road.outroad.y+d/2-this.car.y)*this.car.next_road.outroad_np.my),n=Math.abs((this.car.next_road.outroad.x+d/2-this.car.x)*this.car.next_road.outroad_np.mx);if(0==this.car.next_road.rotation_type&&othis.car.next_road.outroad.x+d/2?(this.car.x=this.car.next_road.outroad.x+d-d/2-d/4,this.car.y=this.car.next_road.outroad.y):0!=n&&this.car.ythis.car.next_road.outroad.y+d/2&&(this.car.y=this.car.next_road.outroad.y+d-d/2-d/4,this.car.x=this.car.next_road.outroad.x),void(this.car.next_road=void 0)}else{var a=this.car.rotation/Math.PI,r=(this.car.rotation/Math.PI+.5)%2,s=(this.car.rotation/Math.PI-.5)%2,h=this.rotationToNextCase[a],c=this.rotationToNextCase[r],l=this.rotationToNextCase[s],p=!1,u=this.car.mx+h.mx,v=this.car.my+h.my;if(this.isRoad(u,v)?this.car.haveTurned||this.car.turnedRandom?!this.car.haveTurned&&this.car.turnedRandom<.5&&this.isRoad(this.car.mx+c.mx,this.car.my+c.my)?(p=!0,this.car.optionalTurn=!0):!this.car.haveTurned&&this.car.turnedRandom>=.5&&this.isRoad(this.car.mx+l.mx,this.car.my+l.my)&&(p=!0,this.car.optionalTurn=!0):this.car.turnedRandom=Math.random():(p=!0,this.car.optionalTurn=!1),p)for(var y=[(a+.5)%2,(a-.5)%2,null],m=0;m=1&&n&&n.core.line==i&&(i=0==i?1:0),e.line=i,e.x=t.x,e.y=t.y,e.x+=d/2,e.y+=d/2;var a=1*d/4;t.orientation=Math.floor(t.orientation/e.rotationStep)*e.rotationStep;var r=-t.orientation*Math.PI,s=0*Math.cos(r)-a*Math.sin(r),h=Math.cos(r)*a+0*Math.sin(r),c=0==i?1:-1,l=0==i?0:Math.PI;e.x+=c*Math.round(s),e.y+=c*Math.round(h),e.mx=Math.floor(e.x/d),e.my=Math.floor(e.y/d),e.rotation=r+l,e.checkAndsetNewRoad(t)},t.prototype.createAsset=function(t,e,i,o){var n=new a(i[t]);n.obstacle=!1,n.type=o,n.mapId=0,n.x=e.x,n.y=e.y,this.level.addChild(n),this.assets.push(n)},t.prototype.createMap=function(t,e,i,o){if(void 0===o&&(o=!0),o)for(var n=0;n0?o=-1:e||(o=-1),o},e.prototype.getLastReward=function(){return this.lastReward},e.prototype.step=function(t,e){void 0===e&&(e=null);for(var i=0;i0&&0==this.car.a?this.car.v=Math.max(0,this.car.v-.01):this.car.v<0&&0==this.car.a&&(this.car.v=Math.min(0,this.car.v+.01)),this.car.a>0&&this.car.v>=0?this.car.v=Math.min(1.5,this.car.v+.01*this.car.a):this.car.a>0&&this.car.v<0&&(this.car.v=Math.min(1.5,this.car.v+.03*this.car.a)),this.car.a<0&&this.car.v<=0?this.car.v=Math.max(-1.5,this.car.v+.01*this.car.a):this.car.a<0&&this.car.v>0&&(this.car.v=Math.max(-1.5,this.car.v+.03*this.car.a)),0==this.car.yaw_rate)this.car.x+=this.car.v*Math.cos(this.car.rotation)*t,this.car.y+=this.car.v*Math.sin(this.car.rotation)*t;else{var e=.01*this.car.yaw_rate*(this.car.v+.001)*Math.PI;this.car.x+=this.car.v/e*(Math.sin(this.car.rotation+e*t)-Math.sin(this.car.rotation)),this.car.y+=this.car.v/e*(Math.cos(this.car.rotation)-Math.cos(this.car.rotation+e*t)),this.car.rotation+=e*t}this.car.mx=Math.floor(this.car.x/d),this.car.my=Math.floor(this.car.y/d),this.car.checkAndsetNewRoad(),this.lidar.x=this.car.x,this.lidar.y=this.car.y,this.lidar.rotation=this.car.rotation;var i=this.detectInteractions(!0,!0),o=i.agentCollisions,n=i.onRoad;return o.length>0&&(this.car.v=0,this.car.vy=0),{agentCollisions:o,onRoad:n}},e}(M),j={env:k,editor:U,level:{fullCity:"embedded://level/fullCity",level1:"embedded://level/level1",level2:"embedded://level/level2",level0:"embedded://level/level0"},motion:{BasicMotion:R,ControlMotion:B}};e.default=j}]).default; \ No newline at end of file +window.metacar=function(t){var e={};function i(o){if(e[o])return e[o].exports;var n=e[o]={i:o,l:!1,exports:{}};return t[o].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.d=function(t,e,o){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)i.d(o,n,function(e){return t[e]}.bind(null,n));return o},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=1)}([function(t,e){t.exports=window.PIXI},function(t,e,i){"use strict";i.r(e);var o=i(0),n=(o.Application,o.loader),a=(o.loader.resources,o.Sprite),r=o.Graphics,s=o.Container,h="https://metacar-project.com/",c=h+"public/textures/textures.json",l=h+"public/images/",d=60,p={DEFAULT:"car.png",AGENT:"car_agent.png"},y={ROAD:-1,DEFAULT:0,CAR:1,AGENT:1},u={ROADS:{"↕":{image:"road_u.png",orientation:1.5},"↔":{image:"road_r.png",orientation:0},"↱":{image:"road_rotate_ld.png",orientation:1.25},"↰":{image:"road_rotate_ul.png",orientation:.75},"↲":{image:"road_rotate_rl.png",orientation:.25},"↳":{image:"road_rotate_dl.png",orientation:1.75},"↟":{image:"road_up.png",orientation:1.5},"↠":{image:"road_rp.png",orientation:0},"↤":{image:"road_r2.png",orientation:0},"↦":{image:"road_l2.png",orientation:1},"↥":{image:"road_d2.png",orientation:.5},"↧":{image:"road_u2.png",orientation:1.5}},house:{image:"house.png"},house2:{image:"house2.png"},house3:{image:"house3.png"},bench:{image:"bench.png"},tree:{image:"tree.png"}},x={level:{fullCity:{cars:[{mx:2,my:5,line:0,auto:!0},{mx:3,my:4,line:0,auto:!0},{mx:3,my:4,line:1,auto:!0},{mx:6,my:3,line:0,auto:!0},{mx:6,my:3,line:1,auto:!0},{mx:8,my:2,line:0,auto:!0},{mx:8,my:2,line:1,auto:!0},{mx:2,my:7,line:0,auto:!0}],house:[{x:9,y:409},{x:146,y:162},{x:439,y:39}],house2:[{x:425,y:192},{x:431,y:354}],house3:[{x:426,y:281},{x:51,y:157},{x:553,y:34}],bench:[{x:259,y:206},{x:8,y:205}],tree:[{x:1,y:303},{x:54,y:357},{x:215,y:325},{x:230,y:400},{x:282,y:368},{x:182,y:433},{x:285,y:309},{x:576,y:233},{x:581,y:300},{x:519,y:388},{x:582,y:391},{x:256,y:69},{x:151,y:43},{x:77,y:77},{x:26,y:24},{x:189,y:98}],map:[[0,0,0,0,0,0,"↕",0,0,0,0],[0,0,0,0,0,0,"↟",0,0,0,0],[0,0,0,0,0,0,"↦","↔","↔","↠","↔"],[0,0,0,0,0,0,"↕",0,0,0,0],["↔","↔","↧","↔","↠","↔","↤",0,0,0,0],[0,0,"↕",0,0,0,"↕",0,0,0,0],[0,0,"↟",0,0,0,"↟",0,0,0,0],[0,0,"↕",0,0,0,"↕",0,0,0,0]]},level1:{cars:[{mx:5,my:3,line:0,auto:!0},{mx:5,my:3,line:1,auto:!0},{mx:5,my:1,line:0,auto:!0}],tree:[{x:120,y:50},{x:86.5,y:85},{x:94.5,y:135},{x:30.5,y:128},{x:72.5,y:190},{x:23.5,y:232},{x:110.5,y:242},{x:43.5,y:33},{x:18.5,y:178},{x:305.5,y:125},{x:360.5,y:122}],asset:[{x:252.5,y:142},{x:86.5,y:85},{x:94.5,y:135},{x:30.5,y:128},{x:252.5,y:26},{x:195.5,y:0},{x:307.5,y:1},{x:72.5,y:190},{x:23.5,y:232},{x:110.5,y:242},{x:43.5,y:33},{x:35.5,y:185},{x:18.5,y:178},{x:289.5,y:126},{x:337.5,y:126},{x:305.5,y:125},{x:360.5,y:122},{x:492.5,y:56},{x:503.5,y:136},{x:504.5,y:58}],bench:[{x:252.5,y:142},{x:252.5,y:26}],road:[{x:240,y:60},{x:240,y:60},{x:480,y:0},{x:480,y:60},{x:480,y:120},{x:480,y:180},{x:480,y:240},{x:300,y:180},{x:300,y:180},{x:360,y:180},{x:420,y:180},{x:420,y:120},{x:420,y:60},{x:360,y:60},{x:300,y:60},{x:420,y:120}],house3:[{x:503.5,y:136}],house:[{x:504.5,y:58}],map:[[0,0,0,0,0,0,0,0,0,0],[0,0,0,"↱","↠","↔","↔","↰",0,0],[0,0,0,"↕",0,0,0,"↟",0,0],[0,0,0,"↳","↔","↔","↔","↲",0,0],[0,0,0,0,0,0,0,0,0,0]],agent:{mx:4,my:3,line:0,motion:{type:"BasicMotionEngine",options:{rotationStep:.5,actions:["UP","LEFT","RIGHT"]}}}},level0:{cars:[],house:[{x:263,y:108},{x:112,y:258}],house3:[{x:262,y:16}],bench:[{x:135,y:34}],tree:[{x:124,y:134},{x:7,y:11},{x:69,y:10},{x:19,y:238},{x:5,y:133},{x:260,y:211}],map:[[0,0,0,0,0],[0,"↱","↔","↰",0],[0,"↕",0,"↕",0],[0,"↳","↠","↲",0],[0,0,0,0,0]],agent:{mx:2,my:1,line:1,motion:{type:"BasicMotionEngine",options:{rotationStep:.5,actions:["UP","LEFT","RIGHT","DOWN","WAIT"]}}}},level2:{cars:[],road:[{x:300,y:360},{x:300,y:360},{x:360,y:360},{x:420,y:360},{x:240,y:360},{x:180,y:360},{x:120,y:360},{x:480,y:360},{x:480,y:360},{x:120,y:360},{x:60,y:360},{x:300,y:300},{x:300,y:240},{x:480,y:360},{x:480,y:360},{x:540,y:360},{x:300,y:180},{x:360,y:180},{x:240,y:180},{x:240,y:180},{x:180,y:180},{x:420,y:180},{x:420,y:120},{x:180,y:120},{x:300,y:60},{x:420,y:60},{x:180,y:60},{x:240,y:60},{x:360,y:60},{x:480,y:60},{x:120,y:60},{x:540,y:60},{x:540,y:120},{x:540,y:180},{x:540,y:240},{x:540,y:300},{x:60,y:60},{x:60,y:120},{x:60,y:180},{x:60,y:240},{x:60,y:300},{x:60,y:240},{x:360,y:180},{x:480,y:360}],asset:[{x:162,y:264},{x:407,y:264},{x:259,y:126},{x:306,y:33},{x:491,y:148},{x:391,y:431},{x:608,y:35},{x:484,y:224},{x:248,y:297},{x:376,y:336},{x:78,y:429},{x:1,y:205},{x:3,y:106},{x:-46,y:290},{x:622,y:154},{x:617,y:280}],house:[{x:162,y:264},{x:622,y:154}],house3:[{x:407,y:264},{x:-46,y:290}],tree:[{x:259,y:126},{x:491,y:148},{x:391,y:431},{x:608,y:35},{x:484,y:224},{x:248,y:297},{x:78,y:429},{x:1,y:205},{x:3,y:106},{x:617,y:280}],bench:[{x:306,y:33},{x:376,y:336}],map:[[0,0,0,0,0,0,0,0,0,0,0],[0,"↱","↔","↧","↔","↔","↔","↧","↔","↰",0],[0,"↕",0,"↕",0,0,0,"↕",0,"↕",0],[0,"↕",0,"↳","↔","↧","↠","↲",0,"↕",0],[0,"↟",0,0,0,"↕",0,0,0,"↕",0],[0,"↕",0,0,0,"↕",0,0,0,"↕",0],[0,"↳","↔","↔","↔","↥","↔","↔","↠","↲",0],[0,0,0,0,0,0,0,0,0,0,0]],agent:{mx:4,my:3,line:0,motion:{type:"BasicMotionEngine",options:{rotationStep:.5,actions:["UP","LEFT","RIGHT","DOWN","WAIT"]}}}},level3:{cars:[{mx:1,my:3,line:0},{mx:1,my:8,line:0},{mx:4,my:8,line:0},{mx:7,my:7,line:1},{mx:9,my:6,line:0},{mx:11,my:4,line:1},{mx:9,my:3,line:1},{mx:7,my:2,line:1},{mx:5,my:1,line:1},{mx:2,my:1,line:1},{mx:6,my:8,line:0},{mx:1,my:6,line:0},{mx:5,my:5,line:1},{mx:4,my:3,line:1},{mx:3,my:4,line:0},{mx:4,my:6,line:0}],road:[{x:120,y:60},{x:180,y:60},{x:240,y:60},{x:60,y:60},{x:60,y:120},{x:60,y:180},{x:60,y:240},{x:60,y:300},{x:60,y:360},{x:60,y:420},{x:60,y:480},{x:120,y:480},{x:180,y:480},{x:240,y:480},{x:300,y:60},{x:300,y:120},{x:300,y:180},{x:300,y:480},{x:300,y:420},{x:300,y:360},{x:300,y:180},{x:360,y:180},{x:420,y:180},{x:420,y:120},{x:420,y:60},{x:240,y:240},{x:300,y:60},{x:360,y:60},{x:240,y:180},{x:300,y:180},{x:300,y:240},{x:300,y:300},{x:240,y:300},{x:180,y:180},{x:180,y:240},{x:180,y:300},{x:360,y:60},{x:420,y:60},{x:420,y:60},{x:420,y:120},{x:420,y:180},{x:420,y:180},{x:480,y:180},{x:540,y:180},{x:660,y:180},{x:600,y:180},{x:660,y:240},{x:660,y:300},{x:660,y:360},{x:600,y:360},{x:540,y:360},{x:480,y:360},{x:420,y:360},{x:300,y:480},{x:360,y:480},{x:360,y:420},{x:360,y:360},{x:420,y:360},{x:420,y:420},{x:420,y:480},{x:360,y:480},{x:180,y:360},{x:240,y:360},{x:300,y:360},{x:300,y:300},{x:300,y:240},{x:180,y:180},{x:240,y:180},{x:300,y:180},{x:180,y:240},{x:180,y:300},{x:240,y:180},{x:180,y:60},{x:60,y:300},{x:300,y:480},{x:240,y:480},{x:600,y:180},{x:540,y:180},{x:660,y:300},{x:480,y:360}],asset:[{x:515,y:262},{x:378,y:254},{x:510,y:89},{x:626,y:86},{x:518,y:445},{x:631,y:436},{x:711,y:434},{x:243,y:295},{x:243,y:246},{x:253,y:153},{x:16,y:521},{x:129,y:214},{x:121,y:228},{x:238,y:425},{x:456,y:273},{x:584,y:531},{x:376,y:558},{x:63,y:539},{x:91,y:559},{x:4,y:515},{x:-3,y:315},{x:-3,y:183},{x:368,y:188},{x:500,y:18},{x:610,y:16},{x:685,y:13},{x:273,y:0},{x:738,y:359},{x:742,y:181},{x:752,y:12}],house3:[{x:515,y:262},{x:626,y:86}],house2:[{x:378,y:254},{x:631,y:436},{x:711,y:434},{x:752,y:12}],house:[{x:510,y:89},{x:518,y:445},{x:742,y:181}],tree:[{x:243,y:295},{x:243,y:246},{x:121,y:228},{x:238,y:425},{x:456,y:273},{x:584,y:531},{x:376,y:558},{x:91,y:559},{x:4,y:515},{x:-3,y:315},{x:-3,y:183},{x:368,y:188},{x:500,y:18},{x:610,y:16},{x:685,y:13},{x:273,y:0},{x:738,y:359}],bench:[{x:253,y:153}],map:[[0,0,0,0,0,0,0,0,0,0,0,0,0],[0,"↱","↔","↠","↔","↔","↔","↰",0,0,0,0,0],[0,"↕",0,0,0,0,0,"↕",0,0,0,0,0],[0,"↕",0,"↱","↠","↰",0,"↳","↔","↠","↔","↰",0],[0,"↕",0,"↕",0,"↕",0,0,0,0,0,"↕",0],[0,"↟",0,"↕",0,"↕",0,0,0,0,0,"↟",0],[0,"↕",0,"↳","↔","↲",0,"↱","↠","↔","↔","↲",0],[0,"↕",0,0,0,0,0,"↕",0,0,0,0,0],[0,"↳","↔","↔","↔","↠","↔","↲",0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0]],agent:{mx:3,my:8,line:0,motion:{type:"BasicMotionEngine",options:{rotationStep:.5,actions:["UP","LEFT","RIGHT","DOWN","WAIT"]}}}}}};function v(t,e){var i=new XMLHttpRequest;i.overrideMimeType("application/json"),i.open("GET",t,!0),i.onreadystatechange=function(){4==i.readyState&&200==i.status&&e(JSON.parse(i.responseText))},i.send(null)}function m(t,e){var i=t.split("//");i=i[1].split("/"),e(x[i[0]][i[1]])}function f(t,e){({"embedded:":m,"http:":v,"https:":v})[t.split("//")[0]](t,e)}function g(t,e){var i=document.createElement("a");document.body.appendChild(i);var o=new Blob([t],{type:"application/octet-binary"}),n=window.URL.createObjectURL(o);i.href=n,i.download=e,i.click(),window.URL.revokeObjectURL(n),i.href=""}function _(t){var e={};return e.code=t,e.isDown=!1,e.isUp=!0,e.press=void 0,e.release=void 0,e.downHandler=function(t){t.keyCode===e.code&&(e.isUp&&e.press&&e.press(),e.isDown=!0,e.isUp=!1),t.preventDefault()},e.upHandler=function(t){t.keyCode===e.code&&(e.isDown&&e.release&&e.release(),e.isDown=!1,e.isUp=!0),t.preventDefault()},window.addEventListener("keydown",e.downHandler.bind(e),!1),window.addEventListener("keyup",e.upHandler.bind(e),!1),e}var I,C=0,w=function(){function t(t,e,i,o){void 0===o&&(o={});var n=this;this.level=t,o.image=o.image||p.DEFAULT,o.lidar=o.lidar||!1,o.lidarInfo=o.lidarInfo||{pts:5,width:4,height:5,pos:0},this.core=new a(i[o.image]),this.info=e,this.core.scale.x=.8,this.core.scale.y=.8,this.core.anchor.x=.5,this.core.anchor.y=.5,this.core.road=void 0,this.core.carId=C,C+=1,this.core.agent=!1,this.core.obstacle=!0,this.core.mapId=y.CAR,o.lidar&&(this.createLidar(o.lidarInfo),this.core.lidar=this.lidar),o.motionEngine?(this.motion=o.motionEngine,this.motion.setUp(this.core,this.lidar),this.core.rotationStep=.5):this.core.rotationStep=.5,this.core.mx=this.info.mx,this.core.my=this.info.my,this.core.x=this.info.mx*d,this.core.y=this.info.my*d,this.core.checkAndsetNewRoad=function(t){return n.checkAndsetNewRoad(t)};var r=this.level.getRoad(this.core.my,this.core.mx);this.core.line=0,r&&r.setCarPosition(this.core,this.info.line)}return t.prototype.checkAndsetNewRoad=function(t){var e=this.core.road;t||(t=this.level.getRoad(this.core.my,this.core.mx)),t!=e&&(e&&e.cars.splice(e.cars.indexOf(this.core.carId),1),this.core.road=t,this.core.haveTurned=!1,this.core.optionalTurn=!1,this.core.turnedRandom=void 0,this.core.next_road=!1,t&&t.cars.push(this.core.carId))},t.prototype.reset=function(){this.core.mx=this.info.mx,this.core.my=this.info.my;var t=this.level.getRoad(this.core.my,this.core.mx);t&&t.setCarPosition(this.core,this.info.line,!0)},t.prototype.getState=function(){var t={},e=[];return this.motion.state.map(function(t){e=e.concat(t)}),e.push(this.core.v),t.linear=e,t.lidar=this.motion.state.map(function(t){return t.slice()}),t.v=this.core.v,t.a=this.core.last_a,t.steering=this.core.last_yaw_rate,t},t.prototype.step=function(t,e){if(void 0===e&&(e=null),null==e)var i=this.motion.step(t),o=i.agentCollisions,n=i.onRoad;else{var a=this.motion.actionStep(t,e);o=a.agentCollisions,n=a.onRoad}return{agentCollisions:o,onRoad:n}},t.prototype.createLidar=function(t){t.pts=t.pts||5,t.width=t.width||4,t.height=t.height||5,t.pos=t.pos||0,this.lidar=new s,this.lidar.lidarPts=[],this.lidar.collisionPts=[];var e=new r;e.pt=!1,e.alpha=.3,e.beginFill(5329233),e.drawRect(0,0,this.core.width*t.width,this.core.height*t.height),e.endFill();var i=new r;i.pt=!1,i.alpha=0,i.beginFill(5308416),i.drawRect(this.core.width-5,e.height/2,3,3),i.endFill();var o=new r;o.pt=!1,o.alpha=0,o.beginFill(5308416),o.drawRect(-1,e.height/2-2,3,3),o.endFill();var n=new r;n.pt=!1,n.alpha=0,n.beginFill(5308416),n.drawRect(this.core.width/2,e.height/2-this.core.height/2+5,3,3),n.endFill();var a=new r;a.pt=!1,a.alpha=0,a.beginFill(5308416),a.drawRect(this.core.width/2,e.height/2+this.core.height/2-8,3,3),a.endFill(),o.x-=t.pos*this.core.width,i.x-=t.pos*this.core.width,a.x-=t.pos*this.core.width,n.x-=t.pos*this.core.width;for(var h=e.width/t.pts,c=e.height/t.pts,l=t.pts-1;l>=0;l--)for(var d=0;do.x&&i.xo.y&&i.y=4||!t)&&(r=!0),{agentCollisions:o,onRoad:r}},t.prototype.setState=function(t){for(var e=0,i=0;ithis.state[o][n]||t[a].mapId==y.ROAD&&this.state[o][n]==y.DEFAULT)&&(this.state[o][n]=t[a].mapId)}e+=1}},t}(),b=(I=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])},function(t,e){function i(){this.constructor=t}I(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),R=function(t){function e(e,i){var o=t.call(this,e)||this;return o.maxSpeed=1,o.rotationStep=i.rotationStep||.5,o.actions=i.actions||["UP","LEFT","RIGHT","DOWN","WAIT"],o}return b(e,t),e.prototype.setUp=function(t,e){this.car=t,this.lidar=e,this.state=[];for(var i=0;i0&&(this.car.v=0,this.car.vy=0),{agentCollisions:i,onRoad:o}},e}(M),E=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])};return function(e,i){function o(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(o.prototype=i.prototype,new o)}}(),S=function(t){function e(e){var i=t.call(this,e)||this;return i.map=i.level.getMap(),i.mapSizeY=i.map.length,i.mapSizeX=i.map[0].length,i.rotationStep=.5,i.rotationToNextCase={},i.rotationToNextCase[0]={mx:1,my:0},i.rotationToNextCase[.5]={mx:0,my:1},i.rotationToNextCase[1]={mx:-1,my:0},i.rotationToNextCase[1.5]={mx:0,my:-1},i.rotationToNextCase[-.5]={mx:0,my:-1},i.rotationToNextCase[-1]={mx:-1,my:0},i.rotationToNextCase[-1.5]={mx:0,my:1},i}return E(e,t),e.prototype.setUp=function(t,e){this.car=t,this.lidar=e,this.state=[];for(var i=0;i=this.mapSizeY||t<0||t>=this.mapSizeX||0==this.map[e][t])return!1;if(i&&this.level.getRoad(e,t).cars.length>0)return!1;return!0},e.prototype.autoRotation=function(){var t=d+d/3,e=d-d/3.5,i=d;if(this.car.next_road){var o=Math.abs((this.car.next_road.outroad.y+d/2-this.car.y)*this.car.next_road.outroad_np.my),n=Math.abs((this.car.next_road.outroad.x+d/2-this.car.x)*this.car.next_road.outroad_np.mx);if(0==this.car.next_road.rotation_type&&othis.car.next_road.outroad.x+d/2?(this.car.x=this.car.next_road.outroad.x+d-d/2-d/4,this.car.y=this.car.next_road.outroad.y):0!=n&&this.car.ythis.car.next_road.outroad.y+d/2&&(this.car.y=this.car.next_road.outroad.y+d-d/2-d/4,this.car.x=this.car.next_road.outroad.x),void(this.car.next_road=void 0)}else{var a=this.car.rotation/Math.PI,r=(this.car.rotation/Math.PI+.5)%2,s=(this.car.rotation/Math.PI-.5)%2,h=this.rotationToNextCase[a],c=this.rotationToNextCase[r],l=this.rotationToNextCase[s],p=!1,y=this.car.mx+h.mx,u=this.car.my+h.my;if(this.isRoad(y,u)?this.car.haveTurned||this.car.turnedRandom?!this.car.haveTurned&&this.car.turnedRandom<.5&&this.isRoad(this.car.mx+c.mx,this.car.my+c.my)?(p=!0,this.car.optionalTurn=!0):!this.car.haveTurned&&this.car.turnedRandom>=.5&&this.isRoad(this.car.mx+l.mx,this.car.my+l.my)&&(p=!0,this.car.optionalTurn=!0):this.car.turnedRandom=Math.random():(p=!0,this.car.optionalTurn=!1),p)for(var x=[(a+.5)%2,(a-.5)%2,null],v=0;v=1&&n&&n.core.line==i&&(i=0==i?1:0),e.line=i,e.a=0,e.v=0,e.x=t.x,e.y=t.y,e.x+=d/2,e.y+=d/2;var a=1*d/4;t.orientation=Math.floor(t.orientation/e.rotationStep)*e.rotationStep;var r=-t.orientation*Math.PI,s=0*Math.cos(r)-a*Math.sin(r),h=Math.cos(r)*a+0*Math.sin(r),c=0==i?1:-1,l=0==i?0:Math.PI;e.x+=c*Math.round(s),e.y+=c*Math.round(h),e.mx=Math.floor(e.x/d),e.my=Math.floor(e.y/d),e.rotation=r+l,e.checkAndsetNewRoad(t)},t.prototype.createAsset=function(t,e,i,o){var n=new a(i[t]);n.obstacle=!1,n.type=o,n.mapId=0,n.x=e.x,n.y=e.y,this.level.addChild(n),this.assets.push(n)},t.prototype.createMap=function(t,e,i,o){if(void 0===o&&(o=!0),o)for(var n=0;n0?o=-1:e||(o=-1),o},e.prototype.getLastReward=function(){return this.lastReward},e.prototype.step=function(t,e,i){if(void 0===e&&(e=null),void 0===i&&(i=!0),!i||this.steping){for(var o=0;o0&&0==this.car.a?this.car.v=Math.max(0,this.car.v-.01):this.car.v<0&&0==this.car.a&&(this.car.v=Math.min(0,this.car.v+.01)),this.car.a>0&&this.car.v>=0?this.car.v=Math.min(this.maxSpeed,this.car.v+.005*this.car.a):this.car.a>0&&this.car.v<0&&(this.car.v=Math.min(this.maxSpeed,this.car.v+.03*this.car.a)),this.car.a<0&&this.car.v<=0?this.car.v=Math.max(-this.maxSpeed,this.car.v+.005*this.car.a):this.car.a<0&&this.car.v>0&&(this.car.v=Math.max(-this.maxSpeed,this.car.v+.03*this.car.a)),0==this.car.yaw_rate)this.car.x+=this.car.v*Math.cos(this.car.rotation)*t,this.car.y+=this.car.v*Math.sin(this.car.rotation)*t;else{var e=.01*this.car.yaw_rate*(this.car.v+.001)*Math.PI;this.car.x+=this.car.v/e*(Math.sin(this.car.rotation+e*t)-Math.sin(this.car.rotation)),this.car.y+=this.car.v/e*(Math.cos(this.car.rotation)-Math.cos(this.car.rotation+e*t)),this.car.rotation+=e*t}this.car.mx=Math.floor(this.car.x/d),this.car.my=Math.floor(this.car.y/d),this.car.checkAndsetNewRoad(),this.lidar.x=this.car.x,this.lidar.y=this.car.y,this.lidar.rotation=this.car.rotation;var i=this.detectInteractions(!0,!0),o=i.agentCollisions,n=i.onRoad;return o.length>0&&(this.car.v=0,this.car.vy=0),{agentCollisions:o,onRoad:n}},e}(M),j={env:k,editor:U,level:{fullCity:"embedded://level/fullCity",level1:"embedded://level/level1",level2:"embedded://level/level2",level3:"embedded://level/level3",level0:"embedded://level/level0"},motion:{BasicMotion:R,ControlMotion:B}};e.default=j}]).default; \ No newline at end of file