Ada.is The blog of Ada Rose Cannon http://ada.is Integrating Augmented Reality Objects into the Real World with Light and Shadows Using the WebXR Light Estimation API we can make 3D objects appear to be physical parts of our real environment by having real lights affect virtual objects and virtual objects casting shadows onto real surfaces. Wed, 06 Apr 2022 00:00:00 +0000 http://ada.is//blog/2022/04/06/integrating-augmented-reality-objects-into-the-real-world/ http://ada.is//blog/2022/04/06/integrating-augmented-reality-objects-into-the-real-world/ JavaScript scope and closures JavaScript is almost famous for some of it’s weird behaviours around variables. This goal of this article is to make it so that you will never be surprised by the value of `this` or why a variable seems to not change when you set it somewhere else. Thu, 31 Mar 2022 00:00:00 +0000 http://ada.is//blog/2022/03/31/javascript-scope/ http://ada.is//blog/2022/03/31/javascript-scope/ Add RSS Feeds to your website to keep your core readers engaged | Samsung Developers RSS is a well established but often well hidden web technology. Fri, 14 Jan 2022 00:00:00 +0000 https://developer.samsung.com/internet/blog/en-us/2022/01/14/add-rss-feeds-to-your-website-to-keep-your-core-readers-engaged https://developer.samsung.com/internet/blog/en-us/2022/01/14/add-rss-feeds-to-your-website-to-keep-your-core-readers-engaged Non-cryptographic uses of SubtleCrypto - Web APIs | MDN This article does not discuss the cryptographic uses of the SubtleCrypto interface. An important thing to take away from this article is don't use this API for production cryptographic purposes because it is powerful and low level. To use it correctly you will need to take many context specific steps to accomplish cryptographic tasks correctly. If any of those steps are taken incorrectly at best your code won't run, at worse it will run and you will unknowingly be putting your users at risk with an insecure product. Fri, 07 Jan 2022 00:00:00 +0000 https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API/Non-cryptographic_uses_of_subtle_crypto https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API/Non-cryptographic_uses_of_subtle_crypto Game Physics on the Web in AFrame Game Physics on the Web in AFrame Adding physics to Virtual Reality and Augmented Reality scenes greatly improves the illusion of… Fri, 24 Sep 2021 00:00:00 +0000 http://ada.is//blog/2021/09/24/game-physics-on-the-web-in-aframe/ http://ada.is//blog/2021/09/24/game-physics-on-the-web-in-aframe/ XR Koi Garden A beautiful VR garden with peaceful music. Listen with headphones for the full effect. Wed, 22 Sep 2021 00:00:00 +0000 https://ada.is/xrgarden/ https://ada.is/xrgarden/ RollAR Coaster An augmeted reality roller coaster you can design yourself in your own home. Wed, 22 Sep 2021 00:00:00 +0000 https://ada.is/rollAR-coaster/ https://ada.is/rollAR-coaster/ bARsketball Shoot some hoops in your own home with Augmented Reality! Wed, 22 Sep 2021 00:00:00 +0000 https://xr-basketball.glitch.me https://xr-basketball.glitch.me Use new Augmented Reality features with just a few lines of code with WebXR and AFrame! Use new Augmented Reality features with just a few lines of code with WebXR and AFrame! Wed, 11 Aug 2021 00:00:00 +0000 http://ada.is//blog/2021/08/11/use-new-augmented-reality-features-with-just-a-few-lines-of-code-with-webxr-and-aframe/ http://ada.is//blog/2021/08/11/use-new-augmented-reality-features-with-just-a-few-lines-of-code-with-webxr-and-aframe/ Multiple Language Installable Web Apps using a single Manifest File Multiple Language Installable Web Apps using a single Manifest File Tue, 03 Aug 2021 00:00:00 +0000 http://ada.is//blog/2021/08/03/multiple-language-installable-web-apps-using-a-single-manifest-file/ http://ada.is//blog/2021/08/03/multiple-language-installable-web-apps-using-a-single-manifest-file/ Future Focused Responsive Design Future Focused Responsive Design Embracing the spirit of responsive design and accessibility to… Mon, 15 Mar 2021 00:00:00 +0000 http://ada.is//blog/2021/03/15/future-focused-responsive-design/ http://ada.is//blog/2021/03/15/future-focused-responsive-design/ Making an AR Game Here is a .gif of the final game, click here to play the game. It uses the WebXR DOM Overlay API, and the WebXR Hit Test API. So right now the best way to play it is in Mobile Chrome or Samsung Internet Beta. Thu, 14 Jan 2021 00:00:00 +0000 http://ada.is//blog/2021/01/14/making-an-ar-game/ http://ada.is//blog/2021/01/14/making-an-ar-game/ Using WebXR in HTML IFrames IFrames are really useful for WebXR. Often WebXR web pages are large with a lot of code and many 3D frameworks default to taking up all the available space on the page. IFrames solve these issues by letting you put all the XR code into another webpage, which can even be on a different domain, they also let you choose exactly how much space they take up on the page and can be used with Flexbox and CSS Grid. Thu, 07 Jan 2021 00:00:00 +0000 http://ada.is//blog/2021/01/07/using-webxr-in-html-iframes/ http://ada.is//blog/2021/01/07/using-webxr-in-html-iframes/ Three Powerful Tools in my Web Development Swiss Army Knife These tools are not ones I use everyday but they have got me out some really sticky situations. I hope you find them useful too. Tue, 03 Nov 2020 00:00:00 +0000 http://ada.is//blog/2020/11/03/three-powerful-tools-in-my-web-development-swiss-army-knife/ http://ada.is//blog/2020/11/03/three-powerful-tools-in-my-web-development-swiss-army-knife/ Curve Modifiers in Three.js I recently made a relaxing koi garden demo, where koi fish swim around a VR environment. The two most notable parts of the scene are the 3D positioned audio which I wrote about previously and the 100s of fish which appear to organically swim around the trees. Thu, 29 Oct 2020 00:00:00 +0000 http://ada.is//blog/2020/10/29/curve-modifiers-in-threejs/ http://ada.is//blog/2020/10/29/curve-modifiers-in-threejs/ Audio on the Web, for Games and VR! Audio is a fundamental way of adding important theming and immersion to games and virtual reality experiences on the Web. It’s not too hard to add but can do wonders for giving the user a wonderful experience. Resources like Freesound make it easier to find Creative Commons sound effects and music so there is no excuse to leave your experience silent. Mon, 19 Oct 2020 00:00:00 +0000 http://ada.is//blog/2020/10/19/audio-on-the-web-for-games-and-vr/ http://ada.is//blog/2020/10/19/audio-on-the-web-for-games-and-vr/ HTML and Templates & JavaScript Template Literals HTML in the Web is often made of reusable components, composed by templates, making it convenient to edit the different parts that make up a website. There are many templating languages used in the web such as handlebars, Pug, Vue and JSX; these are primarily used for composing HTML. Modern JavaScript has templating syntax built in which can use for all kinds of purposes including composing HTML. Tue, 06 Oct 2020 00:00:00 +0000 http://ada.is//blog/2020/10/06/html-and-templates-javascript-template-literals/ http://ada.is//blog/2020/10/06/html-and-templates-javascript-template-literals/ Redeeming Push Notifications You know that thing where you go to a web site then before you can do anything you have to acknowledge the push notification request. Do you hate that? Yeah, me too. Wed, 30 Sep 2020 00:00:00 +0000 http://ada.is//blog/2020/09/30/redeeming-push-notifications/ http://ada.is//blog/2020/09/30/redeeming-push-notifications/ Improve device integration for your Web App in just a few minutes This was a feature I had set aside an afternoon to implement but in the end it only needed a moment and made the experience significantly better. Tue, 25 Aug 2020 00:00:00 +0000 http://ada.is//blog/2020/08/25/improve-device-integration-for-your-web-app-in-just-a-few-minutes/ http://ada.is//blog/2020/08/25/improve-device-integration-for-your-web-app-in-just-a-few-minutes/ AR in the Web, now in Samsung Internet Stable Edit: This has now landed in Samsung Internet stable. You can download here. Tue, 04 Aug 2020 00:00:00 +0000 http://ada.is//blog/2020/08/04/ar-in-the-web-now-in-samsung-internet-stable/ http://ada.is//blog/2020/08/04/ar-in-the-web-now-in-samsung-internet-stable/ Using node modules in Deno Last time we introduced about Deno and discussed how it compares to node, like node, Deno is a server side code-execution environment based on web technology. Mon, 03 Aug 2020 00:00:00 +0000 http://ada.is//blog/2020/08/03/using-node-modules-in-deno/ http://ada.is//blog/2020/08/03/using-node-modules-in-deno/ Making a useful ‘offline’ page for your web app. In ideal conditions the user will always maintain a good connection to the web but things are seldom ideal. Fortunately since we’re been building a web app we have a service worker which has the capability of caching network responses. Mon, 27 Jul 2020 00:00:00 +0000 http://ada.is//blog/2020/07/27/making-a-useful-offline-page-for-your-web-app/ http://ada.is//blog/2020/07/27/making-a-useful-offline-page-for-your-web-app/ Using VR controllers and locomotion in THREE.js In VR, with an advanced headset, one can explore a scene by walking in the real world. We’re often limited to the size of the room we’re in but the VR world can go on forever! Mon, 18 May 2020 00:00:00 +0000 http://ada.is//blog/2020/05/18/using-vr-controllers-and-locomotion-in-threejs/ http://ada.is//blog/2020/05/18/using-vr-controllers-and-locomotion-in-threejs/ Animating DOM Changes A common misconception in Web Development is that the DOM is slow. The DOM, short for Document Object Model, is the structure of the Web Site which your code interacts with. If you were to ask me whether the DOM is slow I would answer that, like most things in computer science, it depends on the circumstances. Thu, 23 Apr 2020 00:00:00 +0000 http://ada.is//blog/2020/04/23/animating-dom-changes/ http://ada.is//blog/2020/04/23/animating-dom-changes/ Building a menu which reveals on scroll. I built this demo as a quick experiment when we were working on an Internal Samsung product. One feature I implemented was the menu where items reveal themselves as you scroll down. Mon, 23 Mar 2020 00:00:00 +0000 http://ada.is//blog/2020/03/23/building-a-menu-which-reveals-on-scroll/ http://ada.is//blog/2020/03/23/building-a-menu-which-reveals-on-scroll/ Enhancing Multi Pane, Single Page Web Apps with Intersection Observer In the previous article we built a magazine style page layout of horizontal scrolling panes using only CSS and HTML, link to the demo. This works really well and is great experience with touch and mouse. Tue, 17 Mar 2020 00:00:00 +0000 http://ada.is//blog/2020/03/17/enhancing-multi-pane-single-page-web-apps-with-intersection-observer/ http://ada.is//blog/2020/03/17/enhancing-multi-pane-single-page-web-apps-with-intersection-observer/ Horizontally Scrolling Panes with clean HTML and modern CSS Isn’t it nice when the tools you work with get better and better when you’re not looking? That’s what it feels like working in the Web some days. Wed, 11 Mar 2020 00:00:00 +0000 http://ada.is//blog/2020/03/11/horizontally-scrolling-panes-with-clean-html-and-modern-css/ http://ada.is//blog/2020/03/11/horizontally-scrolling-panes-with-clean-html-and-modern-css/ Generating a water effect, part 2. In the first part of this series we looked at generating the texture that goes on top of the water which looks like this, using SVG and canvas: Mon, 02 Mar 2020 00:00:00 +0000 http://ada.is//blog/2020/03/02/generating-a-water-effect-part-2/ http://ada.is//blog/2020/03/02/generating-a-water-effect-part-2/ Testing your websites on real devices As desktop browser developer tools improve continuously, the responsive design modes are incredibly useful for testing out designs on other screen sizes such as tablets and mobile phones. For web developers, it can be tempting to rely on these tools for full end to end development, but I want to highlight the important of testing on real devices. Tue, 25 Feb 2020 00:00:00 +0000 http://ada.is//blog/2020/02/25/testing-your-websites-on-real-devices/ http://ada.is//blog/2020/02/25/testing-your-websites-on-real-devices/ Generating a water effect, part 1. SVG and Canvas This is a 3 part breakdown of how this water effect works, you can view the finished demo here: https://a-toon-ocean.glitch.me/ Tue, 11 Feb 2020 00:00:00 +0000 http://ada.is//blog/2020/02/11/generating-a-water-effect-part-1-svg-and-canvas/ http://ada.is//blog/2020/02/11/generating-a-water-effect-part-1-svg-and-canvas/ Using Basis Textures in Three.js You can have 6-8x more images in your WebGL scene by using Basis Universal textures which are very efficiently compressed. This article describes how to encode images as Basis files and read them with THREE.js Fri, 28 Jun 2019 00:00:00 +0000 http://ada.is//blog/2019/06/28/using-basis-textures-in-threejs/ http://ada.is//blog/2019/06/28/using-basis-textures-in-threejs/ Six assumptions which could break your website A mistake consistently made by some of the biggest websites shows they are thinking about responsive web design incorrectly. Tue, 11 Jun 2019 00:00:00 +0000 http://ada.is//blog/2019/06/11/six-assumptions-which-could-break-your-website/ http://ada.is//blog/2019/06/11/six-assumptions-which-could-break-your-website/ Using Houdini Paint API to Render a 3D Model The demo in this article show’s how to uses the Houdini paint API, which is a part of the larger Houdini spec. Houdini is still coming to browsers but is ready to try out. Thu, 16 May 2019 00:00:00 +0000 http://ada.is//blog/2019/05/16/using-houdini-paint-api-to-render-a-3d-model/ http://ada.is//blog/2019/05/16/using-houdini-paint-api-to-render-a-3d-model/ Web Workers in the Real World I wrote this article whilst building a demo website which uses both expensive physics and an expensive SVG filter. It was important that it felt really tactile on mobile devices, so it had to run very smoothly. Mon, 13 May 2019 00:00:00 +0000 http://ada.is//blog/2019/05/13/web-workers-in-the-real-world/ http://ada.is//blog/2019/05/13/web-workers-in-the-real-world/ Speed up your work flow by turning command line tools into interactive dashboards Ever feel like you live in a terminal? This guide is to show how you can make your commandline apps more friendly. Wed, 13 Feb 2019 00:00:00 +0000 http://ada.is//blog/2019/02/13/speed-up-your-work-flow-by-turning-command-line-tools-into-interactive-dashboards/ http://ada.is//blog/2019/02/13/speed-up-your-work-flow-by-turning-command-line-tools-into-interactive-dashboards/ Web Development on a Phone. Updated for Linux on DeX. Last year I wrote about how you can use a phone for web development using an Android Linux Terminal and a simple editor I’d made as a Progressive Web App. It worked pretty well but had some drawbacks, for example you couldn’t debug Samsung Internet on the DeX you had to use an external laptop. Thu, 06 Dec 2018 00:00:00 +0000 http://ada.is//blog/2018/12/06/web-development-on-a-phone-updated-for-linux-on-dex/ http://ada.is//blog/2018/12/06/web-development-on-a-phone-updated-for-linux-on-dex/ Example of running Three.js in a Houdini Paint Worklet This example shows what can be accomplished with the canvas like powers the Houdini paint methods by using Three.js to render 3D text as the background image of a DOM element. Fri, 27 Jul 2018 00:00:00 +0000 https://ada.is/three-paint/ https://ada.is/three-paint/ [Video] Ada's Twitch Tech Talks, Episode 2 A nice chat with Jo Balletti about what it's like mentoring at Codebar and experimenting with CSS. Thu, 26 Jul 2018 00:00:00 +0000 https://youtu.be/kSWHSY3BjSM https://youtu.be/kSWHSY3BjSM [Video] Designing a WebVR game with A-Frame - Designer vs. Developer #18 In this episode, Ada Rose Canon tells us how she built a WebVR game in a week for the “Games Done Quick” event. She explains how she used A-Frame, Twinery, Archilogic, Glitch, Google Poly, binary, and a bit of JavaScript to create a game engine and a responsive virtual environment. Wed, 25 Jul 2018 00:00:00 +0000 https://www.youtube.com/watch?v=KeYv7BSn4N4&index=19&list=PLNYkxOF6rcIC60856GnLEV5GQXMxc9ByJ&linkId=54775416 https://www.youtube.com/watch?v=KeYv7BSn4N4&index=19&list=PLNYkxOF6rcIC60856GnLEV5GQXMxc9ByJ&linkId=54775416 Isomorphic ES Modules Earlier I demonstrated how to build a Single Page App which shares templates with the Server Side Code. We share the web app’s templates to enable the first page load to be pre-rendered on the server. This practice lets Web Apps start faster and be more resilient to network failure. Fri, 15 Jun 2018 00:00:00 +0000 http://ada.is//blog/2018/06/15/isomorphic-es-modules/ http://ada.is//blog/2018/06/15/isomorphic-es-modules/ [Video] DeltaV talk - A Rube Goldberg machine and new Web APIs There are some exciting new developments happening in the web platform right now. New APIs such as CSS Grid, Web Components, Custom CSS Properties and the Web Animation API. Each on their own is a complex topic worth getting to grips with but what this talk aims to show is how they can be used with each other when used together the result is greater than the sum of its parts. Tue, 12 Jun 2018 00:00:00 +0000 https://www.youtube.com/watch?v=DCRN1cG7sOA&list=PLGUWTxqQHq52UYQJVPrDBI7YOZNWlp1en&index=14&t=0s https://www.youtube.com/watch?v=DCRN1cG7sOA&list=PLGUWTxqQHq52UYQJVPrDBI7YOZNWlp1en&index=14&t=0s [Video] Ada's Twitch Tech Talks, Episode 1 Live Coding a Single Page App with Server Side Rendering making use of ES Modules and HyperHTML for importing templates in the browser and in the node server. Wed, 06 Jun 2018 00:00:00 +0000 https://www.youtube.com/watch?v=fe6-HQLBJh8&t=34s https://www.youtube.com/watch?v=fe6-HQLBJh8&t=34s “Help! someone has pointed out my conference has diversity issues! I get asked this question a lot. I hope to give some advice in this article. Mon, 16 Apr 2018 00:00:00 +0000 http://ada.is//blog/2018/04/16/help-someone-has-pointed-out-my-conference-has-diversity-issues/ http://ada.is//blog/2018/04/16/help-someone-has-pointed-out-my-conference-has-diversity-issues/ How I built a game in a week I tried to make a game mostly using tools available on the web. This is a guide to how I integrated these tools together to allow me to create a 3D RPG in a short period of time. With Twinery and AFrame. Mon, 12 Feb 2018 00:00:00 +0000 http://ada.is//blog/2018/02/12/how-i-built-a-game-in-a-week/ http://ada.is//blog/2018/02/12/how-i-built-a-game-in-a-week/ Lessons Learned, making our app with Web Components This is based on a case study where we built a suite of web components to allow anyone to make music visualisations and VJ for nightclubs. Introductory article to this project. Tue, 23 Jan 2018 00:00:00 +0000 https://medium.com/samsung-internet-dev/lessons-learned-making-our-app-with-web-components-bf55379cfcda https://medium.com/samsung-internet-dev/lessons-learned-making-our-app-with-web-components-bf55379cfcda I made a game! 'I Wake Up With Anxiety' Check out my very short game! No download, play it right in the browser. I made it to demonstrate integrating Twine with A-Frame to make a 3D visual novel in the web. Mon, 22 Jan 2018 00:00:00 +0000 https://ada-game-engine.glitch.me https://ada-game-engine.glitch.me Raindrops on roses, whiskers on kittens, declarative web APIs and truly serverless web endpoints This article introduces some cool things I have been playing with recently that have excited me. The thread which ties them together is getting communities of sites to work together across domains, but powered by the front end. Tue, 12 Dec 2017 00:00:00 +0000 http://ada.is//blog/2017/12/12/raindrops-on-roses-whiskers-on-kittens-declarative-web-apis-and-truly-serverless-web-endpoints/ http://ada.is//blog/2017/12/12/raindrops-on-roses-whiskers-on-kittens-declarative-web-apis-and-truly-serverless-web-endpoints/ Virtual Reality for Web Developers Recently, there has been a proliferation of virtual reality (VR) web browsers and VR capabilities added to traditional browsers. In this article, we’ll look at the state of browsers in VR and the state of VR on the web via the WebVR APIs. Mon, 04 Sep 2017 00:00:00 +0000 https://www.smashingmagazine.com/2017/09/guide-virtual-reality-web-developers/ https://www.smashingmagazine.com/2017/09/guide-virtual-reality-web-developers/ A Rube Goldberg Machine An introduction of upcoming web APIs, CSS Grid, Web Animation and Custom Properties. These new APIs when used together can bring a new way to use the web paltform to develop websites without the need for frameworks. Fri, 01 Sep 2017 00:00:00 +0000 https://ada.is/rube-goldberg-article/ https://ada.is/rube-goldberg-article/ Human Friendly Colours using HSL (If you are already familiar with HSL jump to the end for some fun tips.) Thu, 24 Aug 2017 00:00:00 +0000 http://ada.is//blog/2017/08/24/human-friendly-colours-using-hsl/ http://ada.is//blog/2017/08/24/human-friendly-colours-using-hsl/ [Guide] Being fast and light: Using binary data to optimise libraries on the client and the server. The Web has Native support for parsing and editing Binary data. This can be very efficient for example this is how I sync the state of 170 Virtual Reality users in the same venue without bringing down the network. Wed, 19 Jul 2017 00:00:00 +0000 http://ada.is//blog/2017/07/19/being-fast-and-light-using-binary-data-to-optimise-libraries-on-the-client-and-the-server/ http://ada.is//blog/2017/07/19/being-fast-and-light-using-binary-data-to-optimise-libraries-on-the-client-and-the-server/ [Video] Virtual Reality and the Future of the Web New Virtual Reality browsers means we need to consider how the web platform is going to need evolve to take advantage of the benefits that Virtual Reality can bring. Wed, 12 Jul 2017 00:00:00 +0000 https://skillsmatter.com/skillscasts/9947-virtual-reality-and-the-future-of-the-web https://skillsmatter.com/skillscasts/9947-virtual-reality-and-the-future-of-the-web [Video] Ada Rose Cannon | WebVR | Browser API Special, CSS Day 2017 VR is here, there are VR web browsers and new APIs to enable VR across a wide range of devices. The WebVR APIs rely on WebGL to render an immersive environment. This interactive talk aims to introduce a way of writing and controlling WebGL scenes with just HTML, accessible to web developers of all skills; no knowledge of 3D rendering required!! Wed, 14 Jun 2017 00:00:00 +0000 https://vimeo.com/channels/cssday/228688495 https://vimeo.com/channels/cssday/228688495 [Guide] Writing software using a phone! On setting an Android phone as a Desktop computer and using it for Web Development. Mon, 29 May 2017 00:00:00 +0000 https://medium.com/samsung-internet-dev/writing-software-using-a-phone-e71976f1f18d https://medium.com/samsung-internet-dev/writing-software-using-a-phone-e71976f1f18d Simple WebVR Demo, Hello Metaverse WebVR demo built with A-Frame Sun, 09 Apr 2017 00:00:00 +0000 https://ada.is/pages/hello-metaverse.html https://ada.is/pages/hello-metaverse.html Over 100 people in the same Virtual Reality experience!! At the recent LDNWebPerf I had the entire audience sharing the same Virtual Reality being able to see virtual reality slides where I dynamically added content to demonstrate capabilities of VR. Mon, 23 Jan 2017 00:00:00 +0000 https://medium.com/samsung-internet-dev/wow-that-was-some-night-in-vr-ba091be38794#.svl8vqodj https://medium.com/samsung-internet-dev/wow-that-was-some-night-in-vr-ba091be38794#.svl8vqodj Virtual Reality and the Future of the Web New Virtual Reality browsers means we need to consider how the web platform is going to need evolve to take advantage of the benefits that Virtual Reality can bring. Tue, 03 Jan 2017 00:00:00 +0000 http://12devsofxmas.co.uk/2016/12/day-4-a-christmas-carol-for-the-web-future/ http://12devsofxmas.co.uk/2016/12/day-4-a-christmas-carol-for-the-web-future/ Doing VR on the Web - Presented at Dot JS Virtual reality has come to the web! There are now browsers which work inside Virtual Reality headsets. Ada explores how VR can make our websites better and what do we need to take into account to make immersive experiences on the Web. - Paris, 2016 Wed, 21 Dec 2016 00:00:00 +0000 http://www.thedotpost.com/2016/12/ada-rose-edwards-realities-of-doing-vr-on-the-web http://www.thedotpost.com/2016/12/ada-rose-edwards-realities-of-doing-vr-on-the-web Putting the Progressive Web into Progresive Web Apps - Presented at FFConf With new web technologies enabling a new generation of install-able app-like websites it is important to ensure the web carries on working for everyone. This talk will discuss the P in PWA, progressive web apps should work for everyone and should not let their app-like approach divorce them from the web. Fri, 25 Nov 2016 00:00:00 +0000 https://www.youtube.com/watch?v=5ylZbXelPMA https://www.youtube.com/watch?v=5ylZbXelPMA Decoded Chats – Ada Rose Edwards on Progressive Web Apps We invited Ada to chat with Chris Heilmann about the concept of Progressive Web Apps, what new technologies like Service Worker mean for the web and a few more of the technologies she explained in her article “The Building Blocks of Progressive Web Apps“. She had a lot of great insights into application development for the web and tips and tricks how to make them work for everybody. Thu, 17 Nov 2016 00:00:00 +0000 http://blog.decodedshow.com/2016/11/17/decoded-chats-ada-rose-edwards-on-progressive-web-apps/ http://blog.decodedshow.com/2016/11/17/decoded-chats-ada-rose-edwards-on-progressive-web-apps/ W3C WebVR Workshop Follow Up The W3C WebVR workshop, in in San Jose, was the first workshop on WebVR and was an incredible experience, many of the leaders in VR for the web took part to discuss how WebVR will evolve in the future. This covers some of the points raised and the direction WebVR is growing in the future. Mon, 31 Oct 2016 00:00:00 +0000 https://medium.com/samsung-internet-dev/w3c-webvr-workshop-follow-up-bcfe6558ccba#.g38qkzeym https://medium.com/samsung-internet-dev/w3c-webvr-workshop-follow-up-bcfe6558ccba#.g38qkzeym The Web is not Fashionable. or: How I Learned to Love the Web.<br /> On giving vanilla web tech a go and how there is more to the web than knowing JS frameworks. Encouraging a focus on <b>Progressive Enhancement</b> Mon, 10 Oct 2016 00:00:00 +0000 http://ada.is//blog/2016/10/10/the-web-is-unfashionable/ http://ada.is//blog/2016/10/10/the-web-is-unfashionable/ Loading A-Frame scenes faster by optimising image assets. One can greatly make reduce the load time of A-Frame textures by using imageOpim a CDN backed image service to optimise resources on the web which can dramatically reduce filesize and loading time. Sun, 18 Sep 2016 00:00:00 +0000 https://medium.com/samsung-internet-dev/optimising-a-frame-assets-for-faster-starts-4ec3bd35c6fc#.enl2ovedg https://medium.com/samsung-internet-dev/optimising-a-frame-assets-for-faster-starts-4ec3bd35c6fc#.enl2ovedg A-Frame Introduction - From view source conf, talk notes. A talk to <b>get started building VR in the web</b> A-Frame lowers the barrier for entry to Virtual Reality in the web for the developer AND end user. Rapidly prototype and have fun with Web VR. Tue, 13 Sep 2016 00:00:00 +0000 https://ada.is/webvr/talk-view-source.html https://ada.is/webvr/talk-view-source.html The Building Blocks Of Progressive Web Apps Web apps can replace all of the functions of native apps and websites at once. They are coming more and more to the fore these days, but still not enough people are familiar with them or adopting them. Here, you will be able to find some <b>do’s and dont’s on how to make a progressive web app</b>, as well as resources for further research. I’ll also go into the various components and support issues surrounding web apps. Mon, 05 Sep 2016 00:00:00 +0000 https://www.smashingmagazine.com/2016/09/the-building-blocks-of-progressive-web-apps/ https://www.smashingmagazine.com/2016/09/the-building-blocks-of-progressive-web-apps/ How to make Sky Boxes from A-Frame Scenes Equirectangular images can be used as sky boxes and reflection maps. This is a how-to and a bookmarklet for generating Equirectangular 360 <b>image maps from A-Frame scenes</b>. Tue, 30 Aug 2016 00:00:00 +0000 https://medium.com/samsung-internet-dev/a-frame-scene-to-equirectangular-image-e0c2965945aa#.8ttrrqh9s https://medium.com/samsung-internet-dev/a-frame-scene-to-equirectangular-image-e0c2965945aa#.8ttrrqh9s Adding physical rendering options to A-Frame's Standard Material I made my first PR to <b>A-Frame</b>, this to add support for Normal, Displacement and Ambient Occlusion maps, as well as support to allow one to use their sky sphere as an environment map. Thu, 25 Aug 2016 00:00:00 +0000 https://medium.com/samsung-internet-dev/i-made-my-first-pr-to-a-frame-3675d596a2d8#.ntno1b9dh https://medium.com/samsung-internet-dev/i-made-my-first-pr-to-a-frame-3675d596a2d8#.ntno1b9dh Yet another blog about the state and future of Progressive Web App <b>Progressive Web Apps</b> are in flux at the moment, these are the opinions of someone who has been working on web apps before they got conflated with <b>Service Workers</b> and new web tech. Wed, 01 Jun 2016 00:00:00 +0000 http://ada.is//blog/2016/06/01/yet-another-progressive-webapp-post/ http://ada.is//blog/2016/06/01/yet-another-progressive-webapp-post/ [Video or Audio] JavaScript Air on Progressive Web Apps A Progressive Web App "uses modern web capabilities to deliver an app-like user experience. They evolve from pages in browser tabs to immersive, top-level apps, leveraging the web's low friction." with Ben Kelly, Nolan Lawson, Henrik Joreteg, Kent C. Dodds and Ada Rose Cannon. Wed, 25 May 2016 00:00:00 +0000 https://javascriptair.com/episodes/2016-05-25/ https://javascriptair.com/episodes/2016-05-25/ 360 Degree Video in the Web 360 degree video spheres in the Web with Web VR. New cameras and the advent of VR heralds a new era of immersive video experiences. Sun, 15 May 2016 00:00:00 +0000 https://ftlabs.github.io/three-sixty-video https://ftlabs.github.io/three-sixty-video [Notes & Slide Deck] - Push Notifications and Progressive Web Apps Notes from talk at SDC, Introducing setting up progressive Web Apps with the Web App manifest, service workers & push notifications. Tue, 26 Apr 2016 00:00:00 +0000 https://ada.is/progressive-web-apps-talk/ https://ada.is/progressive-web-apps-talk/ Messaging App for sending Emoji. Push messaging powered messaging web app. Mon, 25 Apr 2016 00:00:00 +0000 https://81.ada.is/ https://81.ada.is/ Accessibility and Contrast Bookmarklet <p>This is a bookmarklet to run on any page to analyse the contrast of the text on a page and highlight elements which may have readability issues.</p><p>This project was grew out of a piece of work I did for general page analysis but I thought this component was interesting enough to explore as a standalone tool as it doesn’t need to use any 3rd party service to perform the analysis.</p><p>The project page is hosted on GitHub pages: Contrast Widget.</p><p>&lt;caption&gt;Screenshot of Contrast Widget&lt;/caption&gt;</p> Fri, 12 Feb 2016 00:00:00 +0000 http://ada.is//blog/2016/02/12/contrast-bookmarklet/ http://ada.is//blog/2016/02/12/contrast-bookmarklet/ Starsword Web App Swing your phone around to make sounds with the Web Audio API, install with 'Add to homescreen' Tue, 02 Feb 2016 00:00:00 +0000 https://ada.is/starsword https://ada.is/starsword Sci-Fi swords and Progressive Web Apps <p>A major Science Fiction blockbuster, in a Franchise I am a big fan of, hit cinemas a short while ago.</p><p>In a furore of brand fan-girl-ism and being unable to afford to buy a Force-Effect lightsabre of my own, I did what any reasonable developer would do and I built my own.</p><p>This was a quick one afternoon project and I wanted to break down what went into it.</p><p> End result: https://ada.is/starsword/ - Open on your phone, put up the volume, turn it on, wave it around.</p><p> Source code: https://github.com/AdaRoseCannon/starsword</p> Mon, 01 Feb 2016 00:00:00 +0000 http://ada.is//blog/2016/02/01/progressive-web-apps/ http://ada.is//blog/2016/02/01/progressive-web-apps/ What's in a Number? <p>More accurately, what can be represented by a JavaScript Number object?</p><p>Recently on twitter I saw a question about adding on a Gigasecond (1 Billion seconds), and how it seems inappropriate you need to convert times and dates to milliseconds, thus making 1Gs into an even larger numbers. But 1Gs in ms (10^12 seconds) fits easily in the range of numbers available in JavaScript. This got me thinking what are the limits of what can be represented by natural numbers in JS.</p><p>What is the range of numbers in JS?</p> Fri, 08 Jan 2016 00:00:00 +0000 http://ada.is//blog/2016/01/08/number/ http://ada.is//blog/2016/01/08/number/ [Video & Notes] State of the Browser 5 - Animation Performance <p>This talk was initially based upon the talk I gave at the Extensible Web Summit but I have expanded it to encompass animation performance in general.</p><p>This page will ask for microphone access for a demo further down the page. (spoiler!!)</p><p>Slides: https://gh.ada.is/animation-performance-slides/</p><p> SOTB5 - Animation performance on the web - Ada Rose Cannon from London Web Standards on Vimeo.</p><p>Other talks from State of the Browser 5, by some truly excellent speakers London Web Standards Channel</p> Tue, 15 Sep 2015 00:00:00 +0000 http://ada.is//blog/2015/09/15/sotb-talk/ http://ada.is//blog/2015/09/15/sotb-talk/ Const & Immutable Objects <p>ES6 introduces the const keyword. One issue I’ve seen raised a few times by people who are skilled with Javascript but unfamiliar with ES6 is confusion because when an object is defined using const it is not immutable.</p><p>The goal of this blog post is to go into detail about const and cover some ways ES6 handles immutability.</p><p>One question I’ve been asked a few times recently is in the following situation:</p><p>```javascript</p><p>// This Array will be populated later</p><p>const myArray = [];</p> Mon, 13 Jul 2015 00:00:00 +0000 http://ada.is//blog/2015/07/13/immutable/ http://ada.is//blog/2015/07/13/immutable/ Animation Performance - Follow Up <p>I and someone from slack tried implementing an accordion with the techniques discussed in my previous post.</p><p>This did not work as expected. It had a kind of bouncy effect. This seems to be especially noticable in the accordion case because the change of height is very large.</p><p>Example:</p><p>http://jsbin.com/becudutuxe/4/embed?output</p><p>The reason for this error is that as the transition progresses, from the start (t=1) to the end (t=0), I had made the assumption that at t=0.5 the shrinking element would be as proportionally small as the growing one is large.</p> Wed, 29 Apr 2015 00:00:00 +0000 http://ada.is//blog/2015/04/29/animation-perf-follow-up/ http://ada.is//blog/2015/04/29/animation-perf-follow-up/ How I rolled my own presentation solution in a couple of hours with es6 <p>For my talk at the Extensible Web Summit I had limiited time because I had put off working on it until the last minute. I also wanted to run and pause javascript in the slides and because of these constraints, I figured it would be quicker to roll my own solution than to use a pre-existing presentation framework such as slid.es.</p><p>End result: https://www.1am.club/~ada/ews-slides/; it has some issues, but for this situation the slides only needed to work in Chrome.</p><p>Setup</p><p>I started off with a custom yeoman template I’d made based upon the gulp webapp generator. It adds es6 transpiling with traceur and browserify (through traceurify). This boilerplate setup allows me to very quickly prototype webapps with es6 and scss.</p> Sun, 26 Apr 2015 00:00:00 +0000 http://ada.is//blog/2015/04/26/slides/ http://ada.is//blog/2015/04/26/slides/ Animation Performance <p>On Monday 20/04/2015 I gave a ligtning talk at the extensible on animation performance in the browser.</p><p>These are the notes from the talk prose-ified.</p><p>Link to the talk. Talk notes are displayed on mobile.</p><p>Just saw @slightlylate and @timberners_lee here, trying to not panic.&mdash; Ada Rose Cannon ♥ (@AdaRoseCannon) April 20, 2015</p><p>In the Browser we have a goal to reach 60fps, which gives us 16ms to render a single frame.</p><p>Jank is when the frame takes longer to layout and render than 16ms.</p> Sun, 26 Apr 2015 00:00:00 +0000 http://ada.is//blog/2015/04/26/animation-perf/ http://ada.is//blog/2015/04/26/animation-perf/ Audio visualisation in WebGL <p>[Glitch Bunny] is an audio visualisation. It uses input from the microphone via webaudio and maps it onto a bunny.</p><p> Sorry it appears video is not supported in your browser.</p><p>Later support for google cardboard and better lighting was added. The source code is [Here]</p><p>Why?</p><p>I wanted to do some interesting data visualistation. I had a half finished guitar tuner I was writing (never did finish) and that inspired me to hook it up to that. The challenges were mostly in getting and maintainging 30-60fps on mobile whilst fourier transforming audio and mapping it to a 3d object.</p> Sat, 29 Nov 2014 00:00:00 +0000 http://ada.is//blog/2014/11/29/cardboard/ http://ada.is//blog/2014/11/29/cardboard/