# aframe-ar.js new - aframe-ar.js new version - support smoother - support multi marker - so augmented-website - fixed resize - resize doesnt support portraiting a landscape - there is a resize every 1/60 seconds ?? - test on mobile - how to handle the parameters - i need to have the profile - still it should be possible to change paramteres to offer flexibility - support multi trackingBackend --- - port webvr-arbackend - rename THREEx.ArToolkitContext.getProjectionMatrix into .getArtoolkitProjectMatrix - make multi-marker without page reload --- - DONE make multi-markers to support aruco too - add arBackend in learner.html input - handle arBackend definition in player.html - DONE add modelViewMatrix and a smoother in AR.js example ? - what would be a good example for aruco feature in ar.js - yep add that because this is like the default now - DONE ArMarkerControls.markerId is artoolkit specific - to rename artoolkitMarkerId for now - DONE ArToolkitContext.projectionAxisTransformMatrix is only to correct artoolkit axis - it is a kludge to start with - make it as contained as possible - maybe cached in a ARtoolkit specific function - projectionAxisTransformMatrix renamed as artoolkitprojectionAxisTransformMatrix - simple, no risk and make it clear it is artoolkit - - DONE in arbackend-switch put the backend in hash. and offer to switch - good for testing - DONE all this testing about aruco or jsartoolkit it crappy - in artoolkitContext.backend === 'aruco' || 'artoolkit' - not very clear + timer to init jsartoolkit - so you keep the pointer to context for each. But you test all about the .backend = 'artoolkit' - DONE arucocontext has the canvas at the moment - but dont respect the original canvasWidth - DONE all the posit stuff MUST be out of aruco context and in controls - DONE replace THREEx.ArMarkerControls.notifyFoundModelViewMatrix() by .updateWithModelViewMatrix() - LATER: remove all the artoolkit mention in the front as is now multiple backends - you got classname with 'artoolkit' in it - even exposed in a-frame parameters - NOT NOW: threex-aruco layer is really really thin - YET ANOTHER INDIRECTION - seems useless indirection for AR.js - why not aruco directly - you are using jsartoolkit directly - YES use aruco directly - threex-aruco is at the same level of jsartoolkit - keeping them at the same level will help make ar.js more consistent - threex-aruco provide standalone testing which is good - UNCLEAR at best - - can you make it easy to try all your demo with aruco - this means supporting aruco in webar-playground - so multi markers - may even be an option in the json localstorage learned area - thus it is easy to switch from one to another - the best way to put aruco as first player - aruco seems the future - there is pure js implementation - readable code - there is a cpp implementation too - much smaller code - well documented code + algo - simple algo - easy to understand - not too big - i can maintain it myself - i got MUCH better controls over the code - this lead to ability to tune and experiments with the detection - the detection is the core of the business. it MUCH be under controls - still issue with homography - but can be easily fixed, compared to the huge advantage --- # TODO - if artoolkit arbackend and marker facing camera, then change the tweening - specific fix to artoolkit - TODO super unclear how to get the backward facing camera... - currently webvr is able to do location already - why wouldnt i code it all in webvr location, without the stereo rendering - well it is too early. it is better to make it easier to reuse. - webvr tango isnt mature enougth - release soon and start doing dev/master - create a dev branch - release AR.js as 1.2 - what about the communication ? - make a post on what is new in AR.js - ISSUE: i need to deploy dev on gh-pages it helps with https during dev - redo parameters-tuning.html - all parameters exposed as button - stored as json in url - to replace the demo.html in a-frame - which is super broken anyway - 3 groups of parameters : source, context, controls. make it 3 group on screen too --- - do the initial tunning of camera resolution to have the same aspect as the screen resolution - better precision for my cpu - currently it is doing 640x480 by default - as it is supposed to be fullscreen, get the screen resolution, instead of the window resolution - thus no resize being late issue --- - DONE do a pass on THREEx.ArToolkitSource - IOS support - https://github.com/jeromeetienne/AR.js/issues/90 - support for torch - https://www.oberhofer.co/mediastreamtrack-and-its-capabilities/ - use the new getUserMedia API with envfacing api - see IOS bugs - DONE update link in README.md - DONE THREEx.ArToolkitSource.prototype.onResize split it in THREEx.ArToolkitSource.prototype.mirrorSizeTo(blabla) - DONE Race conditions in resize - arToolkitSource.onResize([renderer.domElement, arToolkitContext.arController.canvas]) - fails if arToolkitContext.arController not ready - change this code, and port is EVERYWHERE :) - DONE rename marker generator as marker-training - just because it is what artoolkit said before - maybe creator ? - training is the same word as before, and seems to do something smart - DONE do something to upload marker from image directly instead of .patt - this avoid the pain of handling .patt files - so get the image encoding it, and then do a dataurl - as the data is image - DONE THREEx.ArSmoothedControls.minVisibleDelay to 0 ? - why would it be worst to show the marker, than to hide it ? - DONE bug in resize + debug in context - API is still crap tho - DONE do the tweening + disapearance with timeout in threex-armarkersmoother.js - this is a controls which read a armarkercontrols and output a new smoothed root - make a possible delay in the appearance and disapearance - DONE put armarkerhelper else where - DONE do a threex.armarkershelper.js something which display info on the marker - which pattern, etc... - an axis too - like you did in threex.arealearning.js - if controls.parameters.helperEnabled: true, then the controls will add the helper automatically - about.me in ar - augmented.club - augmented.whoswho - augmented.cat - augmented.fans - ar.codes - multiple link - twitter, avatar, linkedin, facebook - all stored in the url. so all the states is in the network - avatar at the center, each link graviting around, with exploding entrance like in https://vimeo.com/6264709 - minimal: twitter avatar, username, twitter logo - twitter logo model - https://sketchfab.com/models/60aedf8d974d481995e196225fb0bd2e - logo in voxel ? https://sketchfab.com/models/8da01234347a4193b06f0b2f07113d40 - sketchfab logo - https://sketchfab.com/models/585ace7e32b44d93bb1cecb456488934 - gravatar from the email - http://en.gravatar.com/site/implement/hash/ - release ar.js - start working in dev branch - more frequent release. - moving three.js/ at the root ? - it seems more natural. But there is no emergency - webvr and aframe in their own repository now that it is more stable ? - for refraction, do some deforming mirror effect - put dat.gui in it - various shape which will act as mirrors - cylinder with shrinked middle, dilated middle - animated geometry ? - see about an example of videoinwebgl + vreffect - work on the stereo thing - make the webvr stuff - suddently your demo would work on any webvr device - does this work if i port video-in-webvr into aframe ? what if we go in webvr mode ? - what to do with profile - should it be the default ? - at least on a-frame it should be the default because it is targeted at easy - by default, the setting should be the most common one. - aka the one of a phone - "Augmented Reality in WebVR" as WebVR experiments... It has a nice twist that i like :) http://www.blog.google/products/google-vr/come-play-webvr-experiments/ - DONE fix the multimarker and the symlink - it prevents updating ar.js gh-pages - DONE add show/hide into arcode.html url - thus the apps workflow is finished - DONE do a build file threejs/build/ar.js threejs/build/ar.min.js - DONE re-integrate dead reckoning - rename motion prediction into deadreckoningcontrols - more precise - DONE put THREEx.ArToolkitContext.baseURL = '../' in all demo - DONE add fish in pool hole-in-the-wall - https://blog.int3ractive.com/2012/05/fish-boids-threejs-demo.html - DONE put liquid marker as a single html - or a directory, no need to be dirty - DONE liquid-table.html - video texture + animation of sin - center of finger click is the center of the wave - it can be water wave - it can be fluild real - integrate physics from real finger - it can be like the finger in matrix - https://www.youtube.com/watch?v=b2MSF35IxVE&feature=youtu.be&t=98 - http://mrdoob.com/lab/javascript/webgl/voxels_liquid/index.html # webvr-polyfill - GOAL: works well using only the positional tracking, not the stereo display - thus it works well with all three.js examples - handle resize - currently the canvas isnt using the css it should - canvas is sent to the webvr with .requestPresent(layer) - webvr polyfill to present in single screen - like smus/webvr-polyfill - look at his tuning and do the same - just do the call on the webvr-polyfill and see his framedata and all - issue with the projection matrix being inverse in y and z - LATER: make it work with a-frame # Profile - do a threex-artoolkitprofile.js with various performance profile - var arToolKitProfile = new THREEx.ARToolKitProfile(type) - may be dynamic - for resolution - 'dynamic' - type = 'phoneInHand' || 'desktop' - thus the user can go a in profiler.html and try various profiles until he find the one he needs - then we store that in a cookie, and other applications all use this profile - cookie/localstorage makes it stored on the browser, need one profiler per domain tho - but no database and no authentication needed - DONE artoolkit-profile.html to store the profile in localstorage - it allows you to select which profile you like - it has a