Visualizing Information with

Similar documents
Sam Weinig Safari and WebKit Engineer. Chris Marrin Safari and WebKit Engineer

Web Programming 1 Packet #5: Canvas and JavaScript

Visual HTML5. Human Information Interaction for Knowledge Extraction, Interaction, Utilization, Decision making HI-I-KEIUD

Bioinformatics Resources

This is the vector graphics "drawing" technology with its technical and creative beauty. SVG Inkscape vectors

Houdini - Explaining CSS

1. More jquery Methods 2. JavaScript + SVG: Raphaël 3. About SVG 4. Working with SVG 5. Animating SVG

Etanova Enterprise Solutions

The Scope of This Book... xxii A Quick Note About Browsers and Platforms... xxii The Appendices and Further Resources...xxiii

INTRODUCTION INSTRUCTOR ROBYN OVERSTREET

WebGL Seminar: O3D. Alexander Lokhman Tampere University of Technology

Fundamentals of Website Development

Appendix A Canvas Reference

This is an open-book, open-notes, open-computer exam. You may not consult with anyone other than the instructor while working on this exam.

D3js Tutorial. Tom Torsney-Weir Michael Trosin

Data Visualization (DSC 530/CIS )

Content Visualization Issues

A JavaScript Framework for Presentations and Animations on Computer Science

Conduit 2.0 tutorial: Rendering graphics and text using the Canvas node

HTML5. HTML5 Introduction. Form Input Types. Semantic Elements. Form Attributes. Form Elements. Month Number Range Search Tel Url Time Week

Drawing a Pie Chart. Drawing a Pie Chart. Chapter 6. Setting the Canvas

Qiufeng Zhu Advanced User Interface Spring 2017

LAST WEEK ON IO LAB. Project 3 was due today at noon. If you haven t sent it to us and haven t already talked to us, come talk to us now.

CS474 MULTIMEDIA TECHNOLOGY

HTML5 Evolution and Development. Matt Spencer UI & Browser Marketing Manager

Learn Web Development CodersTrust Polska course outline. Hello CodersTrust! Unit 1. HTML Structuring the Web Prerequisites Learning pathway.

Scalable Vector Graphics (SVG) vector image World Wide Web Consortium (W3C) defined with XML searched indexed scripted compressed Mozilla Firefox

A user-friendly reference guide HTML5 & CSS3 SAMPLE CHAPTER. Rob Crowther MANNING

Image creation with PHP

D3 + Angular JS = Visual Awesomesauce

State of the Open Web. Brad Neuberg, Google

MTA EXAM HTML5 Application Development Fundamentals

Scalable Vector Graphics commonly known as SVG is a XML based format to draw vector images. It is used to draw twodimentional vector images.

OMINO PYTHON for After Effects

16. HTML5, HTML Graphics, & HTML Media 웹프로그래밍 2016 년 1 학기 충남대학교컴퓨터공학과

Data Visualization (DSC 530/CIS )

COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3

I Can t Believe It s Not

WebGL A quick introduction. J. Madeira V. 0.2 September 2017

UI development for the Web.! slides by Anastasia Bezerianos

20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code.

Frontend UI Training. Whats App :

UI Course HTML: (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) Introduction. The World Wide Web (WWW) and history of HTML

Introduction to HTML 5. Brad Neuberg Developer Programs, Google

WebGL (Web Graphics Library) is the new standard for 3D graphics on the Web, designed for rendering 2D graphics and interactive 3D graphics.

HTML5 in Action ROB CROWTHER JOE LENNON ASH BLUE GREG WANISH MANNING SHELTER ISLAND

HTML5, CSS3, JQUERY SYLLABUS

CMPS 179. UX for Designing 3D, Anima2on, and Interac2on for the Web. Name Professors: Here Reid Swanson & Matt Maclaurin

WHAT YOU WILL LEARN IN THIS PHOTOSHOP TRAINING PROGRAM

SCALABLE VECTOR GRAPHICS

IAT 355 : Lab 01. Web Basics

Hardware Accelerated Graphics for High Performance JavaFX Mobile Applications

CS7026 HTML5. Canvas

Core Graphics and OpenGL ES. Dr. Sarah Abraham

When learning coding, be brave

It's a cross-platform vector graphics package written in JavaScript. Frequently referenced as dojox.gfx or dojo.gfx. Supported backends:

About the Tutorial. Audience. Prerequisites. Copyright and Disclaimer. D3.js

mgwt Cross platform development with Java

Data Visualization (DSC 530/CIS )

Building mobile app using Cordova and AngularJS, common practices. Goran Kopevski

Using Java with HTML5 and CSS3 (+ the whole HTML5 world: WebSockets, SVG, etc...)

the web as it should be Martin Beeby

OMINO PYTHON for After Effects

Leveraging the HTML5 Canvas/Javascript for web and mobile maps with CartoVista

Table of contents. HTML5 Image Enhancer Manual DMXzone.com

HTML5 - SVG. SVG is mostly useful for vector type diagrams like Pie charts, Two-dimensional graphs in an X,Y coordinate system etc.

FlexJS. OmPrakash Apache Flex PMC Member Advisory Software Engineer, IBM

Flash Image Enhancer Manual DMXzone.com Flash Image Enhancer Manual

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery.

Server-Side Graphics

COURSE 20480B: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3

Web Designing Course

Mapbox GL. Modern, Robust, Open Source Maps on Mobile & Web. I did a talk like this at OSB 15, but today we ve realized the promise of a lot of this.

Arjen de Blok. Senior Technical Consultant bij ICT Groep ( sinds 1995 Programmeren sinds 1990 Technologiën. Links

Index LICENSED PRODUCT NOT FOR RESALE

CS 160: Lecture 10. Professor John Canny Spring 2004 Feb 25 2/25/2004 1

Programming in HTML5 with JavaScript and CSS3

Varargs Training & Software Development Centre Private Limited, Module: HTML5, CSS3 & JavaScript

X3DOM Getting declarative (X)3D into HTML

Web Design & Dev. Combo. By Alabian Solutions Ltd , 2016

Delivery Options: Attend face-to-face in the classroom or via remote-live attendance.

INKSCAPE BASICS. 125 S. Prospect Avenue, Elmhurst, IL (630) elmhurstpubliclibrary.org. Create, Make, and Build

Front-End Web Developer Nanodegree Syllabus

Lecture Topic Projects

JavaFX Technology Building GUI Applications With JavaFX - Tutorial Overview

3D on the Web Why We Need Declarative 3D Arguments for an W3C Incubator Group

Maurizio Tesconi 24 marzo 2015

Basics of Web Technologies

Embedded Linux UI Comparison. Tim Bird Senior Staff Software Engineer Sony Electronics

CISC 1600 Lecture 2.4 Introduction to JavaScript

Table of Contents. Preface...iii. INTRODUCTION 1. Introduction to M ultimedia and Web Design 1. ILLUSTRATOR CS6 1. Introducing Illustrator CS6 17

Table of Contents. Preface... xiii

WEB DESIGNING COURSE SYLLABUS

<Insert Picture Here> JavaFX 2.0

ChartJS Tutorial For Beginners

Be warned, what you are about to witness may severely inspire you. In collaboration with:

Towards Declarative 3D in Web Architecture Jean Le Feuvre

GWT + HTML5 Can Do What!? Ray Cromwell, Stefan Haustein, Joel Webber May 2010

USING SVG XML FOR REPRESENTATION OF HISTORICAL GRAPHICAL DATA

What s New in QuarkXPress 2018

Transcription:

Visualizing Information with HTML5 @synodinos

35,000 years ago Chauvet cave, southern France

By far the oldest paintings ever discovered

Hundreds of paintings At least 13 different species

Viubk source @ImageThink

Github s Most Forked

Github s Most Watched

Why Visualize Data? Understand relations Realize patterns Make sense of quantitative data Discover correlations between data sets Make boring data more appealing/engaging Maximum value, during short attention span

Transitions Backrounds & Borders CSS3 Animations Transforms

CSS3 Animations Plain JS Animations #moves { transition: all 2s ease- out; } $('#moves').click(function() { $('#moves').css({ marginleft:300 }); }); $('#moves').click(function() { $('#moves').animate({ marginleft: 300, }, { duration: 2000, easing: "easeout" }, function() { console.log('finished.') }); });

GPU Accelarated (potentially) CSS3 transitions CSS3 3D transforms Canvas Drawing WebGL 3D Drawing chrome://gpu/

CSS3 Remote Demo http://graphicpeel.com/cssiosicons

XML format for 2D vector graphics Transformations Major browsers offer (varying) support Static, interactive or animated SVG Filter effects Alpha masks Template objects Clipping paths Google indexes SVG files Interactivity (events)

SVG Demo [local demo]

Rendering of 2D shapes & images Low level, procedural model JS drawing funcs similar to other 2D APIs Animation by redrawing Canvas Basic lines & strokes Paths Pixel-based manipulation Scaling, rotation, transformations PNG representation as data URI Embedded Images Shadows, Gradients & Alpha transparancy

Canvas SVG Bitmap Procedural Only <canvas> accesible via DOM Script Developer friendly Better performance You redraw every pixel based on timers and events Vector Declarative Elements are identifiable via DOM Inline Designer friendly Complexity -> slow rendering True support for animations

Canvas SVG ctx.beginpath(); ctx.arc(centerx, centery, radius, 0, 2 * Math.PI, false); ctx.fillstyle = "red"; ctx.fill(); ctx.linewidth = 2; ctx.strokestyle = "black"; ctx.stroke(); <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red"/>

Canvas Local Demo [local demo]

Canvas Remote Demo http://browserquest.mozilla.org/

JS API for 3D graphics WebGL ctx instead of canvas 2D ctx Based on OpenGL ES WebGL Access to 3D hardware JS control code + shader code (GPU) Lots of 3rdparty libs

WebGL Remote Demo http://seeplan.bengler.no/planimator

JS vector graphics lib Shapes & paths Gradients SVG output Raphaël Transformations Animations VML fallback Events

Pure SVG <svg style="height="200" width="320"> <circle cx="50" cy="40" r="10" fill="#ff0000" stroke="#ffffff"> </circle> </svg> Raphaël var paper = Raphael(10, 50, 320, 200); var circle = paper.circle(50, 40, 10); circle.attr("fill", "#f00"); circle.attr("stroke", "#fff");

Processing.js Port of the Processing visual programming lang Builds on Java but uses simplified syntax Has a light-weight IDE (Java) Can combine Processing & JS Access DOM from Processing

Processing.js modes Programming Run Rendering Basic: static images Write pure JS 2D Continuous: loops, custom funcs, keyboard & mouse events Import Processing code 3D Java: everything subclass of PApplet (not recommended) Compile Processing to JS PDF*

Processing.js Dev Workflow [local demo]

Processing.js Remote Demos http://sandropaganotti.com/wp- content/goodies/demos/twitter- stream/?q=2#pizza http://mattmckeon.com/facebookprivacy/

Binds data to DOM & then applies data-driven transforations Doesn t directly bother with graphical representation* D3.js W3C Selectors API (Sizzle fallback) Dynamic Properties Native Transitions Plugins Beautiful, ready to use layouts You can still use CSS3, SVG, etc.

D3.js Structure [basic local demo]

D3 Example #1: InfoQ Topics Arbor.js vs. D3 Zoobable Partition Layout

D3 Example #2: Chord Diagram

D3.js Remote Demo https://github.com/mbostock/d3/wiki/gallery

Interactive object model on top of Canvas Define classes Create/remove Obj Clone Obj Observe Obj Iterate over Obj Initialize Obj Fabric.js Simple shapes & paths Scale, move, rotate, transform Dynamic manipulation of text Filters for images SVG -> Canvas parser Serialize canvas into JSON string

Fabric.js Structure [local demo]

Fabric.js var myrect = new fabric.rect({ width: 100, height: 50, fill: 'red', stroke: 'black' }); var canvas = new fabric.canvas('my-canvas'); canvas.add(myrect); canvas.renderall(); var canvas = document.getelementbyid('my-canvas'); var ctx = canvas.getcontext('2d'); Canvas ctx.beginpath(); ctx.rect(188, 50, 200, 100); ctx.fillstyle = 'red'; ctx.fill(); ctx.linewidth = 5; ctx.strokestyle = 'black'; ctx.stroke();

Case Study InfoQ Research: Community-driven insight into trends, behaviors and technologies

@synodinos

Questions? twitter.com/synodinos

Yummy visualizations Food as a means of data expression, aka edible diagrams: http://data-cuisine.net/data-dishes/taste-of-migration/