Kitware / vtk-js

Visualization Toolkit for the Web
https://kitware.github.io/vtk-js/
BSD 3-Clause "New" or "Revised" License
1.24k stars 374 forks source link

Specify the subset of vtk that vtk.js covers. #256

Open phcerdan opened 7 years ago

phcerdan commented 7 years ago

First of all, this is awesome, congrats to put vtk at web scale with this project!

I am a half way developing a classic Itk4-Vtk7-Qt5 app, but I am tempted to drop Qt it and do it using vtk.js and electron ( or even without electron).

ITK provides itkImageToVTKImageFilter for converting itk images to vtk, and you already have that. I am also using a vtkGraphLayoutView, and vtkImagePlaneWidget ( derived from vtkPolyDataSourceWidget). Are they currently supported in vtk.js?

Thanks, and sorry if it would be better to ask this in the vtk-users (or dev?) mail list.

jourdain commented 7 years ago

This is the perfect place to ask questions. Regarding the subset that vtk.js cover, as of today, vtk.js support vtkImageData and vtkPolyData for volume and geometry rendering. We have a couple geometry sources (plane, line, cube) and few filters (warp, calculator) and some custom mappers that allow to render molecules.

We don't have any of the InfoViz / GraphLayoutView or Widgets and I don't see them any time soon unless a dedicated funding want to push them forward.

phcerdan commented 7 years ago

@jourdain thanks for the info. I can not port it then (yet) :(

How many hours would require the implementation of the GraphLayoutView? Maybe you can apply to the Mozilla Science mini-grants (ending 3th Jun) for implementing a specific feature? Scientific Visualization in the Web, you are going to get it! And also, and sorry for asking too much, but isn't Kitware that dedicated funding?

jourdain commented 7 years ago

I'm not sure to understand what you mean by but isn't Kitware that dedicated funding?.

I haven't looked at the code of the GraphLayoutView and also how much of its dependency may be missing from vtk.js.

If you really fill like it, you can contribute that class to the project. And we can help you in that process.

phcerdan commented 7 years ago

I misunderstood I don't see them any time soon unless a dedicated funding want to push them forward, not really used to read funding when you were asking for time contributions, not money. Sorry.

I would love to help/collaborate, but not much experience with js. Do you have any guideline on how to implement a class, or any particular example in the source code that I can follow? Thanks

jourdain commented 7 years ago

That will be a starting point if you want to contribute.

Otherwise I meant both: funding us to do the work now or contribute it as a community member.

DenielNCore commented 2 years ago

I'm not sure if this is the right place for my question, but whatever.

Will the code be implemented (rewritten) to the JavaScript/TypeScript standards and its capabilities?

jourdain commented 2 years ago

@DenielNCore, I'm not sure what is your question exactly? Are you talking about full VTK or just GraphLayoutView?

DenielNCore commented 2 years ago

@jourdain I'm talking about VTK.js in general.

jourdain commented 2 years ago

vtk.js is fully written in JavaScript along with TypeScript definition.

But in short taken from the README: vtk.js aims to be a subset of VTK and provide 3D rendering using WebGL (+WebGPU) for both geometry and volume rendering.

DenielNCore commented 2 years ago

I'm more likely talking about the approaches that were used: the class system and imitation of inheritance, excessive data encapsulation and not using the main advantages of the language - all this is not inherent in JavaScript. Of course, I understand that this is a port from C ++, but I would like to understand whether the library will be updated in the future to the state when it will be JS developer-friendly.

jourdain commented 2 years ago

What do you see as the main advantage of the language that we don't leverage?