Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3D fields #32

Open
niallrobinson opened this issue Mar 31, 2016 · 4 comments
Open

3D fields #32

niallrobinson opened this issue Mar 31, 2016 · 4 comments
Labels
Milestone

Comments

@niallrobinson
Copy link

To be clear - this is not a wish for this project. Its a ahem blue sky ahem idea for project X in the future.

Is there any scope for rendering 3D fields of data in the browser using notebooks and holoviews? I made a browser-based 3D volume rendered version of atmospheric data a few months ago. I've always dreamed of being able to look at animated 3D fields of data.

Demo: http://demo.3dvis.informaticslab.co.uk/ng-3d-vis/apps/desktop/
Blog post about it: http://www.informaticslab.co.uk/technical/2015/11/27/projectone-retrospective.html

@philippjfr
Copy link
Contributor

That's a really cool demo and is definitely worth looking into. Could you comment a bit on what libraries you're using to render that plot?

I've looked into this a little bit myself and the only thing which I think could easily be adapted as a HoloViews backend is the CesiumJS library, which also has Python bindings. Shouldn't be too hard to get a prototype running but you'd have to tell us whether that's within the scope of the project.

@jlstevens
Copy link
Contributor

Yes, that is a really neat demo!

This sort of visualization is definitely within the scope of HoloViews and we have prototyped interactive 3D visualizations using HoloViews in the past. In general we find that 3D functionality often has a lot of domain specific requirements making it hard to come up with a general approach that keeps everyone happy.

I would say something like this would require a lot of effort to implement and polish but it certainly wouldn't be out of scope for a possible HoloViews extension in future.

@philippjfr
Copy link
Contributor

I've looked at some of the source code now and it looks like you're just using ThreeJS, which is something we've actually played with for another project in the past. Writing a small HoloViews backend that works by generating some HTML+JS to render ThreeJS plots should be fairly straightforward to prototype, but as Jean-Luc points out might take a considerable amount of time to polish.

@jbednar jbednar added this to the Post-v0.1.0 milestone Apr 5, 2016
@niallrobinson
Copy link
Author

Hi guys - sorry for being lax and not replying sooner. Yup - three.js is the bottom line. When we made this it required a surprising about of bespoke shader code but I hope three.js will fold this kind of functionality in natively at some point.

Ultimately, all the rendering knows is that its plotting a regularly spaced orthogonal 3D array (of course, that spatial atmospheric fields are non of these things so there is quite a lot of processing to get to something that represents physical space). But obviously this could three (+animation) dimensions which are physical space. Something to tackle in the future, maybe.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants