Code Monkey home page Code Monkey logo

Comments (12)

trungleduc avatar trungleduc commented on June 15, 2024 1

Hi @bjlittle, thank you for sharing your use case. It looks awesome!

  1. I was just wondering what the roadpath is for jupyterview? Do you have any plans that you're able to share?
  • I'm working in #34 to support more file types by using the meshio package. With this update, jupyterview can read a lot more mesh file type, for example : Abaqus (.inp), ANSYS msh (.msh), CGNS (.cgns), DOLFIN XML (.xml)...
    I would love to hear about your suggestions to improve jupyterview.
  1. Are there plans to extend jupyterview to allow more than one VTK object to be added to the scene? Or, if that's already possible, how do you do it?
  • Technically it's possible, but since I started jupyterview as a single document viewer, it needs a lot of changes in the UI.
  1. Is it easy for you to share instructions on how to publish jupyterview and run with jupyterlite?

from jupyterview.

koldunovn avatar koldunovn commented on June 15, 2024 1

@bjlittle just to say the AWI-CM example (as well as others :)) looks great! :)

from jupyterview.

trungleduc avatar trungleduc commented on June 15, 2024 1

Sorry for my late reply

Also, some minor requests:

  • being able to simply change the background colour
  • add a title to the scene
  • control the title of the colorbar/scalarbar (rather than default to the name of the scalar)
  • the Color by drop-down also indicates for each scalar it's location i.e., points or cells, which will help differentiate to the user between two scalar arrays attached to the mesh with the same name but on different mesh locations.

Would all be really useful 😃

Thank you for your very helpful suggestions. I created the 0.5.0 release plan #36. It would be great if you could put your suggestion into independent issues, I will tag them with the 0.5.0 milestone https://github.com/trungleduc/jupyterview/milestone/1

from jupyterview.

trungleduc avatar trungleduc commented on June 15, 2024 1

@trungleduc Did you have a specific use case for adding the warping to the UI?

Personally, I'd tend to pre-warp and save the mesh rather than do it interactively.

That said, warping by a fixed normal is limiting, but jupyterview being able to compute the normals of the points/faces (and option to flip them) and then warp by those could potentially be more useful?... but I guess it depends on what the user is trying to achieve.

Anyways, if you supported this then I could easily load the flattened bathymetry mesh and warp the points by scalar depth to dynamically create the scene shown above. That would help to easily determine the warp factor that suits the users needs... now that would be pretty cool 😉

Or are you assuming/preferring that the user pre-computes and attaches the normals to the mesh? If so, then being able to select the existing normals on the mesh from the UI and warp by those might be an easier option to support from the perspective of jupyterview

From my experience in solid mechanics, we want to plot different stress fields on a deformed mesh, so having interactive wrapping is quite useful.
What I want to do is a "wrap by vector", just like in ParaView but this feature is not available yet on vtk.js, the base library that i use in jupyterview for ploting

from jupyterview.

trungleduc avatar trungleduc commented on June 15, 2024 1

@trungleduc Just to clarify, for the pvd XML file format, is the timestep the intended delay between rendered frames?

i.e., so here it's 100ms, right? (given that each frame in reality can be rendered that quickly)

<?xml version="1.0"?>
<VTKFile type="Collection" version="0.1">
    <Collection>
        <DataSet timestep="0.000000E+00" file="tamar_salinity_000.vtk"/>
        <DataSet timestep="0.100000E+00" file="tamar_salinity_001.vtk"/>
        <DataSet timestep="0.200000E+00" file="tamar_salinity_002.vtk"/>
        <DataSet timestep="0.300000E+00" file="tamar_salinity_003.vtk"/>
    </Collection>
</VTKFile>

Also, is there a limit to the number of frames that can be in a collection? i.e., do you load all the frame meshes into memory before rendering or do you have a lazy loading/render scheme?

I fixed the framerate at 24fps, the timestep is used just for labeling the frame. And yes, all the meshes are loaded into memory before rendering, and the frames are cached so I only need to render once for each mesh.

from jupyterview.

bjlittle avatar bjlittle commented on June 15, 2024

@trungleduc Fancy enabling GH Discussions for your repo?

from jupyterview.

bjlittle avatar bjlittle commented on June 15, 2024

@trungleduc As suggestions for improvements, having a "follow-mode" to focus and zoom the camera through a scene would be fantastic e.g., by double clicking to fly to the location of the mouse in the scene. For example, exploring this relatively complex river basin with tributaries is possible with jupyterview, but a wee bit fiddly/difficult:

tamar-bathymetry-warp.mp4

This is the same scene using pyvista but using focus and zoom to make the navigation/interaction more natural and intuitive:

pml-tamar.mp4

from jupyterview.

bjlittle avatar bjlittle commented on June 15, 2024

@trungleduc If you could offer more colormaps out-the-box, such as the perceptually accurate colormaps from colorcet or indeed cmocean, then that would be marvellous and make a huge difference.

For example, it would really enhance visualizations of salinity changing with the tide:

tamar-salinity.mp4

Awesome, thanks! 👍

from jupyterview.

bjlittle avatar bjlittle commented on June 15, 2024

Brilliant, thanks... I take a look at that 👍

from jupyterview.

bjlittle avatar bjlittle commented on June 15, 2024

Also, some minor requests:

  • being able to simply change the background colour
  • add a title to the scene
  • control the title of the colorbar/scalarbar (rather than default to the name of the scalar)
  • the Color by drop-down also indicates for each scalar it's location i.e., points or cells, which will help differentiate to the user between two scalar arrays attached to the mesh with the same name but on different mesh locations.

Would all be really useful 😃

from jupyterview.

bjlittle avatar bjlittle commented on June 15, 2024

@trungleduc Did you have a specific use case for adding the warping to the UI?

Personally, I'd tend to pre-warp and save the mesh rather than do it interactively.

That said, warping by a fixed normal is limiting, but jupyterview being able to compute the normals of the points/faces (and option to flip them) and then warp by those could potentially be more useful?... but I guess it depends on what the user is trying to achieve.

Anyways, if you supported this then I could easily load the flattened bathymetry mesh and warp the points by scalar depth to dynamically create the scene shown above. That would help to easily determine the warp factor that suits the users needs... now that would be pretty cool 😉

Or are you assuming/preferring that the user pre-computes and attaches the normals to the mesh? If so, then being able to select the existing normals on the mesh from the UI and warp by those might be an easier option to support from the perspective of jupyterview

from jupyterview.

bjlittle avatar bjlittle commented on June 15, 2024

@trungleduc Just to clarify, for the pvd XML file format, is the timestep the intended delay between rendered frames?

i.e., so here it's 100ms, right? (given that each frame in reality can be rendered that quickly)

<?xml version="1.0"?>
<VTKFile type="Collection" version="0.1">
    <Collection>
        <DataSet timestep="0.000000E+00" file="tamar_salinity_000.vtk"/>
        <DataSet timestep="0.100000E+00" file="tamar_salinity_001.vtk"/>
        <DataSet timestep="0.200000E+00" file="tamar_salinity_002.vtk"/>
        <DataSet timestep="0.300000E+00" file="tamar_salinity_003.vtk"/>
    </Collection>
</VTKFile>

Also, is there a limit to the number of frames that can be in a collection? i.e., do you load all the frame meshes into memory before rendering or do you have a lazy loading/render scheme?

from jupyterview.

Related Issues (8)

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.