GithubHelp home page GithubHelp logo

isabella232 / vtk-js Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kitware/vtk-js

0.0 0.0 0.0 87.09 MB

Visualization Toolkit for the Web

Home Page: https://kitware.github.io/vtk-js/

License: BSD 3-Clause "New" or "Revised" License

Shell 0.09% JavaScript 94.78% Python 1.59% CSS 0.14% HTML 1.48% GLSL 1.91%

vtk-js's Introduction

VTK.js - The Visualization Toolkit for JavaScript

Build Status Build Status Dependency Status semantic-release npm-download npm-version-requirement node-version-requirement DOI

Introduction

VTK is an open-source software system for image processing, 3D graphics, volume rendering and visualization. VTK includes many advanced algorithms (e.g., surface reconstruction, implicit modelling, decimation) and rendering techniques (e.g., hardware-accelerated volume rendering, LOD control). The JavaScript implementation remains a subset of the actual C++ library but efforts will be made to easily port or compile native VTK code into WebAssembly to better blend both worlds. vtk.js is a true rewrite of VTK in plain JavaScript (ES6). Therefore not everything has been rewritten.

The origin of VTK is with the textbook "The Visualization Toolkit, an Object-Oriented Approach to 3D Graphics" originally published by Prentice Hall and now published by Kitware, Inc. (Third Edition ISBN 1-930934-07-6). VTK has grown (since its initial release in 1994) to a world-wide user base in the commercial, academic, and research communities.

vtk.js aims to be a subset of VTK and provide 3D rendering using WebGL (+WebGPU) for both geometry and volume rendering.

What is the difference with VTK/C++?

VTK.js is a complete rewrite of VTK/C++ using plain JavaScript (ES6). The focus of the rewrite, so far, has been the rendering pipeline for ImageData and PolyData, the pipeline infrastructure, and frequently used readers (obj, stl, vtp, vti). Some filters are also provided as demonstrations. We are not aiming for vtk.js to provide the same set of filters that is available in VTK/C++, but vtk.js does provide the infrastructure needed to define pipelines and filters.

We have also started to explore a path where you can compile some bits of VTK/C++ into WebAssembly and to enable them to interact with vtk.js. With such interaction, you can pick and choose what you need to extract from VTK and enable it inside your web application. VTK/C++ WebAssembly can even be used for rendering, and examples can be found in VTK repository. Additionally itk.js (which is ITK via WebAssembly) also provides proven implementations for several image filters and data readers. There are, however, some additional costs in terms of the size of the WebAssembly file that will have to be downloaded when visiting a VTK or ITK WebAssembly webpage; and we still have some work to do to streamline the vtk.js + VTK WebAssembly integrations.

In general if you want to stay in the pure JavaScript land, then vtk.js is perhaps the ideal solution for you. We welcome your feedback, including your contributions for new visualization filters, bug fixes, and examples.

On top of the rendering capabilities of vtk.js, the library provides helper classes to connect to a remote VTK/ParaView server to enable remote-rendering and/or synchronized C++/RenderWindow content with a local vtk.js RenderWindow by pushing the geometry from the server to the client and only involve rendering on the client side.

Using vtk.js

Requirements

In general VTK tries to be as portable as possible; the specific configurations below are known to work and tested.

vtk.js supports the following development environments:

  • Node 14+
  • NPM 7+

and we use @babel/preset-env with the defaults set of browsers target. But when built from source this could be adjusted to support any browser as long they provide WebGL.

Documentation

Feature requests and Bug reports

Submit an issue to report bugs or missing features in vtk.js.

Help and Support

  • VTK/Web discourse forum is here to help you find existing questions or ask your own.
  • Kitware offers advanced software R&D solutions and services. Find out how we can help with your next project.

License

VTK is distributed under the OSI-approved BSD 3-clause License. See Copyright.txt for details.

Contributing

See CONTRIBUTING.md for instructions on how to contribute.

vtk-js's People

Contributors

agirault avatar aronhelser avatar boucaud avatar bourdaisj avatar brianhelba avatar daker avatar fezvrasta avatar finetjul avatar floryst avatar gandis0713 avatar georgefuller avatar jiayixuu avatar jourdain avatar laurennlam avatar llangholz89 avatar luciemac avatar mayeulchassagnard avatar ocrossi avatar psavery avatar remicecchinato avatar sankhesh avatar scottwittenburg avatar swederik avatar tamaynard avatar tbirdso avatar thewtex avatar tomsuchel avatar tristanwright avatar vibraphone avatar wschroed avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.