3D graphics in JavaScript ROOT

Slides:



Advertisements
Similar presentations
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2004 Go4 v2.8 Analysis Design.
Advertisements

AJAX & By – Anupama Sharma. Defining Ajax Ajax isn’t a technology. It’s really several technologies, each flourishing in its own right, coming together.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
Chapter 6 DOJO TOOLKITS. Objectives Discuss XML DOM Discuss JSON Discuss Ajax Response in XML, HTML, JSON, and Other Data Type.
Bertrand Bellenot root.cern.ch ROOT I/O in JavaScript Reading ROOT files from any web browser ROOT Users Workshop
Reading ROOT files in any browser ROOT I/O IN JAVASCRIPT Bertrand Bellenot CERN, PH-SFT.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Introduction to ArcGIS API for JavaScript
Tutorial 1 Getting Started with Adobe Dreamweaver CS3
CNIT 133 Interactive Web Pags – JavaScript and AJAX JavaScript Environment.
THttpServer class Sergey Linev (GSI). Some history Development was inspired by JSRootIO why not achieve similar functionality with online ROOT application?
Developers of a suite of products to help you monitor and optimize Windows/SQL Server performance o Performance Advisor – awareness and control over Windows.
Music composition with HTML 5-Canvas. Abstarct Online version music editor. Easy to use, just need some simple direction. Everyone can be a musician.
JavaScript ROOT Bertrand Bellenot (CERN) Sergey Linev (GSI)
Java Root IO Part of the FreeHEP Java Library Tony Johnson Mark Dönszelmann
COGEVITO Complex Geometry Visualization Tool. Motivation Exploit the potential of Three,js for the visualization of complex geometries related to HEP.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
1 3. Computing System Fundamentals 3.1 Language Translators.
Root based event display Dmitry Romanov October 19, 2010.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
THttpServer for ROOT Bertrand Bellenot, CERN Sergey Linev, GSI Darmstadt
CHEP 2013, Amsterdam Reading ROOT files in a browser ROOT I/O IN JAVASCRIPT B. Bellenot, CERN, PH-SFT B. Linev, GSI, CS-EE.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2003 GSI Online Offline Object Oriented Go4.
RIA and Web2.0 Development with no Coding Juan Camilo Ruiz Senior Product Manager Development Tools.
Web Design and Development. World Wide Web  World Wide Web (WWW or W3), collection of globally distributed text and multimedia documents and files 
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev ROOT 2002 GSI Online Offline Object Oriented Go4.
GOSS iCM Forms Gary Ratcliffe. 2 Agenda Webinar Programme Form Groups Publish Multiple Visual Script Editor Scripted Actions Form Examples.
ROOT I/O in JavaScript Browsing ROOT Files on the Web For more information see: For any questions please use following address:
GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GGO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4G.
ASP. ASP is a powerful tool for making dynamic and interactive Web pages An ASP file can contain text, HTML tags and scripts. Scripts in an ASP file are.
How to combine IRIS products Available APIs Examples of integrations Ole Andersen Senior Strategic Account Manager.
Display Page (HTML/CSS)
S.Linev: Go4 - J.Adamczewski, H.G.Essel, S.Linev ROOT 2005 New development in Go4.
Reading ROOT files in (almost) any browser.  Use XMLHttpRequest JavaScript class to perform the HTTP HEAD and GET requests  This class is highly browser.
1 G4UIRoot Isidro González ALICE ROOT /10/2002.
1 CSC160 Chapter 1: Introduction to JavaScript Chapter 2: Placing JavaScript in an HTML File.
Go4 Workshop J.Adamczewski-Musch, S.Linev Go4 advanced features.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
JavaScript Invented 1995 Steve, Tony & Sharon. A Scripting Language (A scripting language is a lightweight programming language that supports the writing.
//liveVirtualacademy2011/ What’s New for ASP.NET 4.5 and Web Development in Visual Studio 11 Developer Preview Γιώργος Καπνιάς MVP, MCT, MCDP, MCDBA, MCTS,
Go4 v2.2 Status & Overview CHEP 2003
Developing Online Tools To Support The Visualization Of Ocean Data For Educational Applications Poster #1767 Michael Mills, S. Lichtenwalner,
DHTML.
JavaScript ROOT
MPEG-4 Binary Information for Scenes (BIFS)
Working in the Forms Developer Environment
Creating Dynamic Web Pages with FrontPage Barry Sosinsky Valda Hilley
Active Server Pages Computer Science 40S.
z/Ware 2.0 Technical Overview
Complex Geometry Visualization TOol
Getting Started with R.
Distributed object monitoring for ROOT analyses with Go4 v.3
Application with Cross-Platform GUI
MapServer In its most basic form, MapServer is a CGI program that sits inactive on your Web server. When a request is sent to MapServer, it uses.
.NET and .NET Core 7. XAML Pan Wuming 2017.
Web Browser server client 3-Tier Architecture Apache web server PHP
Social Media And Global Computing Introduction to Visual Studio
Understanding the Visual IDE
Version 3.5 (Citrus) Preview
The Web Wizard’s Guide To JavaScript
Getting Started With Solr
CIS 133 mashup Javascript, jQuery and XML
An Introduction to JavaScript
ASP.NET Imran Rashid CTO at ManiWeber Technologies.
WIRED 4 Event Display Linear Collider Simulation Workshop
CNIT 133 Interactive Web Pags – JavaScript and AJAX
© 2017, Mike Murach & Associates, Inc.
Presentation transcript:

3D graphics in JavaScript ROOT https://root.cern/js/ Sergey Linev (GSI, Darmstadt)

S.Linev, 3D graphics in JavaScript ROOT Outlook JavaScript ROOT project Histograms drawings with three.js Geometry display Tracks, hits, hierarchy Plans and ideas 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT ROOT objects display in web browsers Full support of ROOT I/O, including TTree JSON for any streamable ROOT object User interface for the THttpServer Developed since 2012 https://root.cern/js/ https://github.com/root-project/jsroot 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT Supported by JSROOT Histograms, graphs, functions Canvases, stacks, multi-graphs Text, legend, stats TTree::Draw TGeo Many examples on https://root.cern/js/latest/examples.htm 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT https://root.cern/js/latest/examples.htm#tcanvas_roofit 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT https://root.cern/js/latest/examples.htm#tf1_ff2 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT https://root.cern/js/latest/examples.htm#ttree_cut 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT Simple API Few lines of JavaScript code to insert JSROOT graphics on any HTML page Examples https://root.cern/js/latest/api.htm <script src=“https://root.cern/js/latest/scripts/JSRootCore.min.js” type="text/javascript"></script> <script type='text/javascript'> JSROOT.NewHttpRequest("hpx.json", 'object', function(obj) { JSROOT.draw("drawing", obj, "hist"); }).send(); </script> <div id="drawing" style="width:800px; height:600px"></div> 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT online access to running ROOT application civetweb or fastcgi visualization and live update of ROOT objects execution of commands and methods hierarchy display of objects possibility for fully custom UI 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT https://root.cern/js/latest/api.htm#httpserver_c_read_file 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT TBufferJSON Converts any streamable object into JSON ROOT I/O remains fully on server side Support of custom streamers Optional array compression Size of compressed JSON files comparable with size of normal ROOT files JSROOT.parse(json) function to decode 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT https://root.cern/js/latest/examples.htm#th2_lego1 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT histograms 3D display three.js Supports TH1/TH2/TH3 Interactive zooming Tooltips and bins highlight Good performance with 200x200 TH2 was not a case in earlier JSROOT versions THREE.BufferGeometry 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT https://root.cern/js/latest/examples.htm#th2_surf4 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT https://root.cern/js/latest/examples.htm#th3_glbox2 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT Geometry display three.js was there – just use it All kind of ROOT TGeo classes All kinds of shapes composite with enhanced ThreeCSG.js THREE.BufferGeometry Interactive: rotation and zoom volumes highlight and tooltip context menu clip panels 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT https://root.cern/js/dev/examples.htm#tgeo_alice 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT https://root.cern/js/dev/examples.htm#tgeo_cms 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT https://root.cern/js/dev/examples.htm#tgeo_atlas 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT https://root.cern/js/dev/examples.htm#tgeo_lhcb 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT Behind the scene Select most significant visible volumes try limit model by 105 faces take into account view frustum (optionally) create compact model descriptor takes less then 0.5s for large geometries Build three.js model reproduce TGeo hierarchy in THREE.Object3D create BufferGeometry for each unique shape reuse build geometries when possible can be offload to HTML5 Worker ~3s for typical LHC geometry three.js model can be used without JSROOT display https://root.cern/js/dev/api.htm#custom_html_geometry 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT Hierarchy browser Explore nodes hierarchy including components of composite shapes Display any sub-component Mark highlighted volumes Toggle visibility flags 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT https://root.cern/js/dev/examples.htm#tgeo_eve 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT https://root.cern/js/dev/examples.htm#tgeo_comp 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT Tracks and hits Overlay with geometry drawing TGeoTrack, TEveTrack, TEvePointSet extract tracks/hits from TTree list can be easily extend Hierarchy browser highlight on 3D scene when selected toggle visibility flags 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT https://root.cern/js/dev/examples.htm#tgeo_tracks+hits 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT Event display? Not yet, but many components are there Geometry and projections Tracks and hits Hierarchy browser THttpServer and JSON for online Missing custom components: attributes editors browser actions GUI 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT https://root.cern/js/dev/examples.htm#tgeo_proj 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT Integration with EVE Reuse code as much as possible Crucial point – extraction of event data most of EVE classes are not streamable Introducing interface to THttpServer 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT Next plans SVG for 2D projections reuse TH2 drawing code EVE, JSROOT and THttpServer Evaluation of several JS GUI libraries ext.js, webix, Dojo, ... Reliable file-based monitoring 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT Conclusion JSROOT provides powerful tools for building web applications on base of ROOT access to all kind of ROOT data interactive display for ROOT classes integration with THttpServer 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT

S.Linev, 3D graphics in JavaScript ROOT TTree::Draw Access to data directly from the browser no need for MakeClass or MakeSelector All branches types are supported including splitted STL containers and old TBranchObject Fast – multi-range HTTP requests Direct dump of branch data Complex TTree::Draw syntax expressions cut condition arrays indexes Math functions Class functions histogram parameters TSelector-like user API 28.03.2017 S.Linev, 3D graphics in JavaScript ROOT