-
Notifications
You must be signed in to change notification settings - Fork 6
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
implement 3D molecule viewer for "Real Molecules" screen #15
Comments
ChemDoodle looks interesting: http://web.chemdoodle.com. License is GPL, but they say "Contact us for alternate licensing options." |
Requirements, based on Java/Jmol implementation: • atoms |
@jonathanolson What is the status of the 3D molecule code in Molecule Shapes? Is there anything general, or anything that we could start generalizing to meet the needs of Molecule Polarity? |
It's in a state where we could move our Three.js-related code to another shared repo, and hopefully meet the needs of Molecule Polarity. It would be helpful to have a call sometime to discuss the current state and setup in Molecule Shapes. |
OK, not high priority. But it's been ~3 months since we punted on JSmol, and Molecule Polarity is otherwise complete. So it would be nice to get back to this at some point so that we have another sim to publish. |
Dev meeting 5/7/2015 note: The chemistry design team should start chipping away at requirements for a general molecule viewer. @ariel-phet suggested that Amy H. might take this on when she joins the team. Assigning to @ariel-phet to follow up. |
In phetsims/tasks#354 (comment), @ariel-phet said this regarding porting of Java sims:
|
Current 3D status:
|
There is currently no deadline for Molecule Polarity. @ariel-phet said to assign this to @amyh-phet to define what features we may need for a 3D molecule library. |
@amyh-phet you and I should discuss a bit...but basically you will want to review all chemistry sims to see which ones use a 3d molecule viewer (definitely molecule shapes and build a molecule). @pixelzoom made a pretty good list above of what requirements we had in Java. Ideally we want to anticipate as many features a possible. It would be good to have a list that is sort of "essential" "would be nice" and "wish list" |
@ariel-phet just let me know when you want to meet @pixelzoom thanks for compiling the list of requirements in the Java sims |
General requirements for molecule viewer: Essential features: Would be nice: Wish-list: |
Here's a MIT-licensed chemistry viewer which says there is also (under development?) support for electron density maps: It probably wouldn't be "easy" but some things tricky in JMol may be easier here. Also, do we need to provide fallback support for canvas? Or OK to require webgl for this part? (May be a question for @ariel-phet). |
https://github.com/3dmol/3Dmol.js supports many of the features we need, including volume data. |
Presumably a third-party solution would need to support all the features? Due to the general PhET desire to be able to customize/change appearance, or add in features (like bond angle displays for Molecule Shapes), I would assume that either a phet-specific solution should be implemented, OR we would need to easily be able to change or add things in the display. A library built on top of three.js (which essentially gives us a three.js node with the display) that supports most of what we need (and could be forked easily) would be ideal (as we could add in custom 3d components/surfaces/etc. around it). |
Also, three.js provides the desirable feature that it provides a canvas fallback for many cases. |
I moved the discussion (and all related comments) about whether to publish without the Real Molecules screen to #27. |
@kathy-phet asked me via Slack:
The Real Molecules screen is partially implemented, run with It's also not clear to me what "the necessary work to support it" is. Is that the low-level 3D support? Or a library of 3D objects for chem sims like Molecule Polarity? @jonathanolson What is the status? |
Current status for 3D work: fully supported and proven inDensity/Buoyancy as major elements (using three.js and the So it would be best to coordinate with me, but you essentially create the view in three.js using Again as noted, I don't know how to compute certain 3D forms that would be required for molecules, but it's possible to construct any 3D form once you know the coordinates (and I can consult). |
Build a Molecule also uses this approach (using mobius/three.js) for its molecule view. |
To clarify: we should be able to display things in 3D, that code exists. The code to determine "where/what should be displayed" based on the chemistry is a design/code part that does not exist to my knowledge yet, and would have to be done. |
@kathy-phet If you'd like this to proceed, it sounds like we need a design meeting. I can't give an estimate because I don't know who is building the primitives (molecules, bonds, dipoles, surfaces, etc.) needed by Molecule Polarity. If I have to build those from three.js primitives, that's going to be a much larger estimate than if (for example) @jonathanolson is creating a library of 3D chemistry components that I can reuse. |
As noted in #6... We punted on JSmol. Either identify some other 3rd-party library that meets the needs of Molecule Polarity (and future chem sims?) or develop a custom library. If developing a custom library, it probably makes the most sense to grow what is being done by @jonathanolson for Molecule Shapes.
The text was updated successfully, but these errors were encountered: