SlideShare a Scribd company logo
A-Frame: Building virtual
reality experiences for the
Web
@doJester13
Nice to meet you
Erik Minarini
@doJester13
Unity and Android Developer at Touchlabs
Manager at GDG Bologna
Founder of ToughNutToCrack
Virtual reality (VR) is an interactive computer-generated experience taking place
within a simulated environment, that incorporates mainly auditory and visual, but
also other types of sensory feedback like haptic
What is VR?
A-Frame: building virtual reality experiences for the web
Virtual reality is growing so fast in many areas.
VR isn’t just for games, it is also largely used in business, marketing, commercial
and many others.
VR is growing
A-Frame: building virtual reality experiences for the web
https://immersive-web.github.io/webvr/
The WebVR is a javascript API that provides interfaces to VR hardware to allow
developers to build compelling, comfortable VR experiences on the web.
https://webvr.rocks/
Developing a virtual reality application, in particular for the web, could seem hard,
but you shouldn’t be afraid.
There is a solution!
Are you scared?
A open source web framework for building virtual reality experiences
A-Frame
<html>
<head>
<script src="https://aframe.io/releases/0.8.2/aframe.min.js"></script>
</head>
</html>
<html>
<head>
<script src="https://aframe.io/releases/0.8.2/aframe.min.js"></script>
</head>
<body>
<a-scene>
</a-scene>
</body>
</html>
<html>
<head>
<script src="https://aframe.io/releases/0.8.2/aframe.min.js"></script>
</head>
<body>
<a-scene>
<a-box color="#4CC3D9" position="-1 0.5 -3" rotation="0 45 0"></a-box>
<a-cylinder color="#FFC65D" position="1 0.75 -3" radius="0.5" height="1.5"></a-cylinder>
<a-sphere color="#EF2D5E" position="0 1.25 -5" radius="1.25"></a-sphere>
<a-plane color="#7BC8A4" position="0 0 -4" rotation="-90 0 0" width="4" height="4"></a-plane>
<a-sky color="#303030"></a-sky>
</a-scene>
</body>
</html>
<html>
<head>
<script src="https://aframe.io/releases/0.8.2/aframe.min.js"></script>
</head>
<body>
<a-scene>
<a-box color="#4CC3D9" position="-1 0.5 -3" rotation="0 45 0"></a-box>
<a-cylinder color="#FFC65D" position="1 0.75 -3" radius="0.5" height="1.5"></a-cylinder>
<a-sphere color="#EF2D5E" position="0 1.25 -5" radius="1.25"></a-sphere>
<a-plane color="#7BC8A4" position="0 0 -4" rotation="-90 0 0" width="4" height="4"></a-plane>
<a-sky color="#303030"></a-sky>
</a-scene>
</body>
</html>
A-Frame: building virtual reality experiences for the web
ECS architecture is a common and desirable pattern in 3D and game development
that follows the composition over inheritance and hierarchy principle
Entity-Component-System
Entities are container objects into which components can be attached. Entities are
the base of all objects in the scene. Without components, entities neither do not
render anything, similar to empty <div>s.
Entities
Components are reusable modules or data containers that can be attached to
entities to provide appearance, behavior, and/or functionality. All logic is
implemented through components, and we define different types of objects by
mixing, matching, and configuring components.
Components
Systems provide global scope, management, and services for classes of
components. Systems are often optional, but we can use them to separate logic and
data; systems handle the logic, components act as data containers.
Systems
Entities are represented by the <a-entity> element and prototype.
Components are represented by HTML attributes on <a-entity>‘s.
Systems are represented by <a-scene>‘s HTML attributes.
...in A-Frame
<a-scene>
<a-box color="#4CC3D9" position="-1 0.5 -3" rotation="0 45 0"></a-box>
<a-cylinder color="#FFC65D" position="1 0.75 -3" radius="0.5" height="1.5"></a-cylinder>
<a-sphere color="#EF2D5E" position="0 1.25 -5" radius="1.25"></a-sphere>
<a-plane color="#7BC8A4" position="0 0 -4" rotation="-90 0 0" width="4" height="4"></a-plane>
<a-sky color="#303030"></a-sky>
</a-scene>
A curated collection of A-Frame ready-to-use components.
Registry
https://aframe.io/aframe-registry/
A-Frame: building virtual reality experiences for the web
Just <ctrl>+<alt>+i.
Inspector
A-Frame: building virtual reality experiences for the web
Community
https://aframe.io/blog/
A-Frame: building virtual reality experiences for the web
250+ contributors
8000+ stargazers
4500+ members
100s of featured projects
A-Painter
https://blog.mozvr.com/a-painter/
Mozilla
Fear of the Sky
http://www.360syria.com/
Amnesty International UK
Musical Forest
https://experiments.withgoogle.com/musical-forest
Google Creative Lab
Thank you
@doJester13

More Related Content

PPTX
Internet of Stranger Things
PDF
Java Programming
ODP
HTML5 Game Development frameworks overview
PDF
Augmented Reality Application Development_Vuforia.pdf
PDF
11 Best IoT Development Tools and it's Features
PDF
Ob Essay
PDF
Architecting Iot Solutions On Azure Conquering Complexity For Scalable Device...
PPT
Building Web Interfaces
Internet of Stranger Things
Java Programming
HTML5 Game Development frameworks overview
Augmented Reality Application Development_Vuforia.pdf
11 Best IoT Development Tools and it's Features
Ob Essay
Architecting Iot Solutions On Azure Conquering Complexity For Scalable Device...
Building Web Interfaces

Similar to A-Frame: building virtual reality experiences for the web (20)

PDF
IT Recruiter's Mind Maps - Booklet Preview
PPTX
Synthetic Data: From 3D model to AI on the Edge
PPTX
703382-Metaverse Presentation Template Free.pptx
PDF
Introduction to html5 game programming with ImpactJs
KEY
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
ZIP
iPhone/iPad Development with Titanium
PDF
What Is BuildContext In Flutter And It's Importance
PPT
Gridforum Rick Reesen Virtual World Technologies To Manage A Grid 20080402
PDF
Build UI of the Future with React 360
DOCX
Resume_A_Vinod
PPTX
603848771-Lecture-1-Intro-to-Flutter-and-Dart.pptx
DOCX
Y1 gd engine_terminology
DOCX
Y1 gd engine_terminology
PPTX
is three.js better for developing web-based 3d games?
PDF
Making real time data accessible through mixed reality
DOCX
Y1 gd engine_terminologyhj
PPTX
Byte Conf React Native 2018
DOCX
Bhavin_Resume
PDF
A Conceptual Model Of An Erp System Using Uml
IT Recruiter's Mind Maps - Booklet Preview
Synthetic Data: From 3D model to AI on the Edge
703382-Metaverse Presentation Template Free.pptx
Introduction to html5 game programming with ImpactJs
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
iPhone/iPad Development with Titanium
What Is BuildContext In Flutter And It's Importance
Gridforum Rick Reesen Virtual World Technologies To Manage A Grid 20080402
Build UI of the Future with React 360
Resume_A_Vinod
603848771-Lecture-1-Intro-to-Flutter-and-Dart.pptx
Y1 gd engine_terminology
Y1 gd engine_terminology
is three.js better for developing web-based 3d games?
Making real time data accessible through mixed reality
Y1 gd engine_terminologyhj
Byte Conf React Native 2018
Bhavin_Resume
A Conceptual Model Of An Erp System Using Uml
Ad

Recently uploaded (20)

PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
cuic standard and advanced reporting.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Big Data Technologies - Introduction.pptx
PDF
Electronic commerce courselecture one. Pdf
PPTX
Machine Learning_overview_presentation.pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
sap open course for s4hana steps from ECC to s4
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Empathic Computing: Creating Shared Understanding
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Programs and apps: productivity, graphics, security and other tools
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Mobile App Security Testing_ A Comprehensive Guide.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
cuic standard and advanced reporting.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Big Data Technologies - Introduction.pptx
Electronic commerce courselecture one. Pdf
Machine Learning_overview_presentation.pptx
Spectroscopy.pptx food analysis technology
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Review of recent advances in non-invasive hemoglobin estimation
Assigned Numbers - 2025 - Bluetooth® Document
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
sap open course for s4hana steps from ECC to s4
A comparative analysis of optical character recognition models for extracting...
Empathic Computing: Creating Shared Understanding
“AI and Expert System Decision Support & Business Intelligence Systems”
MYSQL Presentation for SQL database connectivity
Programs and apps: productivity, graphics, security and other tools
The AUB Centre for AI in Media Proposal.docx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Ad

A-Frame: building virtual reality experiences for the web