wiki:Chimera2

Version 26 (modified by pett, 13 years ago) ( diff )

--

High Order Chimera 2 Goals

  1. Improved performance and scalability (support for larger systems)
  2. Improved maintainability
  3. QT/Web interfaces
  4. Better tools, fewer tools
  5. Open platform, secure design

Possible Additional Improvements for Chimera 2.0

In no particular order...

  1. Colors are RGB values, not RGBA values, for ease of changing transparency of a non-uniformly-colored object.
  2. Integration of scene/session saving to avoid duplicative effort.
  3. Elimination of MSMS so that Chimera 2 can be truly open source and for improved reliability.
  4. Adoption of modern Python naming conventions.
  5. Programmer documentation for all public classes and functions.
  6. Global coordinate frame so model with lowest id is not special.
  7. Chain objects. You would need to define exactly what a chain means (same ID? connected polymer?) and what happens when a connecting bond is deleted or established.
  8. Sequence objects. [There are Sequence objects. Is this the same as specifying sequences in commands?]
  9. Wrap C++ code with SWIG instead of wrappy.
  10. Use numpy for vector, point, transform, bounding box, coordinate set data types.
  11. Implement Camera and Viewer in Python not C++. Code in Python unless speed is needed.
  12. Separate molecule C++ library from generic models / selectable / color abstractions.
  13. OpenGL shader support.
  14. Correct multi-model transparency.
  15. Unify commands / menus solvent-excluded and low resolution surfaces.
  16. Mouse pointer-mode palette like Photoshop or Gimp with mode parameters.
  17. Generalize 3 level selection hierarchy for many level molecular assemblies.
  18. Object specification for commands for all objects at all levels (unique ids, sequences, ...)
  19. Level-of-detail rendering that maintains frame rate as highest priority.
  20. Image save in nogui mode for database applications.
  21. Easier to remember commands (e.g. one color command with key words for current color, rainbow, bondcolor, ribcolor, ribinsidecolor, modelcolor, surfcolor, scolor, rangecolor).
  22. Feature usage tracking.
  23. Less nightmarish compilation system so that "open source" means you can actually build it yourself.
  24. Atoms subclass from Points so that Atoms aren't used for all kinds of things that aren't actually atoms. Same idea for Bonds / Molecules (/Residues?).
  25. Recode object selection language parser. Currently very difficult to enhance.
  26. Use OpenGL vertex buffer objects instead of display lists. Faster and more reliable.
  27. Better molecular surface control. Surface category not required. Surface colors not saved with atoms.
  28. Robust solvent excluded molecular surface calculation.
  29. Improved nucleotides display. Individual residues selectable. High performance rendering (OpenGL VBO). No VRML.
  30. Separate Chimera source code from test data (combined Chimera 1.6 "source" is 2 Gbytes impeding 3rd party use).
  31. Provide unified limited undo for motion (including intra-molecule), color change, style change, visibility change, but not model editing.
  32. Biopython and/or SciPy integration?
  33. notebook integratation -- rednotebook, evernote
  34. possible localization
  35. Replicating structures without actually replicating the structures (e.g. arrays of unit cells; periodic MD simulations)
  36. Single atom object for all altlocs

Development Cycle

  1. Monthly milestones with demonstratable results.
  2. Develop scientifically compelling examples based on published literature for all major new features with step-by-step details (video).

Tasks

  1. Investigate instancing and parallel arrays complexity
  2. Plan 2: Investigate keeping Chimera 1 code base while improving performance and upgrading to modern software libraries

Documents

Note: See TracWiki for help on using the wiki.