o Geometry instancing (CLIENT) - Pseudo instanced cylinders. - ANGLE_instanced_arrays perfect-/points-spheres, then cylinders. o Multiple bonds from CIF dictionaries (CLIENT ONLY) - From data island. - From local dictionary file. - From EBI/PDB? - From local monomer library? o Multiple lights. (CLIENT) o Atom selections (CLIENT ONLY) o Colouring schemes (CLIENT ONLY) o BUGS - This does not work in MapDisp in scene.xml: surface_style_solid o Symmetry (SERVER/CLIENT, CLIENT) o Save current scene to view in CCP4MG o Primitives (CLIENT) * Latex/MathML text, which looks a bit difficult. o Menus on GUI show something. (GUI) o Full Display Table - Other display objects: surfaces, h-bonds, maps, annotations, etc. - Selection browser tools: Logic, interactive selection (requires line widths). - Metal on simple menu. - Edit transparency. o Wizard choices. o More atoms to triangles in client. - Thermal ellipsoids: Atoms + B/U -> spheroids. - Hydrogen bonds: Atoms + HBond calc -> lines - Contacts: Atoms + contacts calc -> lines. - Worms scaled by b/nmr: Atoms (+B) -> CAs -> spline -> worm. - Nucleic base blacks: Atoms -> rna/dna rings -> triangles. - Bloboids: Atoms -> bloboids. - Circles: Atoms -> circles. - Perfect spheres: Atoms -> perfect spheres. - Base pair sticks: Atoms -> HBonded base pairs -> cylinders. (HARD, want H-Bonds.) - Lipid cartoon: Atoms -> lipids: tail -> spline -> worm -> spheroid; head -> spheroid. (HARD) - Glycoblocks: Atoms -> sugar rings -> glycoblocks. (HARD? Might be better way than in MG) - Surface: Atoms -> surface (HARD, might be able to obtain code/algorithm). - Require: * maths: eigensolver, svd(?) Could/should use numeric.js. * primitives: spheroid, perfect sphere (might not be possible). - Colouring: * By chain * By entity * By model * Main/side * Rainbow * Residue type * ASA * Hydrophobicity * B-factor * Browser o Statefulness: ??? (The elephant in the room) - Local storage - thsi might be best. (CLIENT) - Keep process alive on server. (SERVER): * Remove QApplication mainloop requirement of MG so that it can be run in non-main thread. This is potentially very tricky. o Only click on atoms not fogged or clipped. (CLIENT) o FPS (CLIENT) o Simple Display Table (CLIENT) o Stereo/3-way (CLIENT) o Rock/roll (CLIENT) o Scale (CLIENT) o Render/screenshot (CLIENT, in progress) o Generate helices (CLIENT) o Applications where we should use web services if possible: - Superpose - Download SF, maps, PDB_REDO, etc. - Ebeye - Get monomer - PISA o Sequence viewer o Harder/unknown applications: - Normal modes (Simple calc in JS, if we have an eigen solver). - Get smiles ??? - ProSMART ???