All notable changes to this project will be documented in this file, following the suggestions of Keep a CHANGELOG. This project adheres to Semantic Versioning for its most widely used - and defacto - public interfaces.
Note that since we don't clearly distinguish between a public and private interfaces there will be changes in non-major versions that are potentially breaking. If we make breaking changes to less used interfaces we will highlight it in here.
- Do not include tests and source maps in NPM package
- Add multiple lights support (with color, intensity, and direction parameters)
- [Breaking] Add per-object material rendering properties
SimpleSettingsParams.lighting.renderStyle
andRendererParams.style
were removed
- Add substance theme with per-group material rendering properties
StructureComponentManager.Options
state saving supportParamDefinition.Group.presets
support
- Fix: allow atoms in aromatic rings to do hydrogen bonds
- Fix secondary-structure property handling
- StructureElement.Property was incorrectly resolving type & key
- StructureSelectionQuery helpers 'helix' & 'beta' were not ensuring property availability
- Re-enable VAO with better workaround (bind null elements buffer before deleting)
- Add
Representation.geometryVersion
(increments whenever the geometry of any of its visuals changes) - Add support for grid-based smoothing of Overpaint and Transparency visual state for surfaces
- Workaround: switch off VAO support for now
- Fix double canvas context creation (in plugin context)
- Fix unused vertex attribute handling (track which are used, disable the rest)
- Workaround for VAO issue in Chrome 96 (can cause WebGL to crash on geometry updates)
- Added
ViewerOptions.collapseRightPanel
- Added
Viewer.loadTrajectory
to support loading "composed" trajectories (e.g. from gro + xtc) - Fix: handle parent in Structure.remapModel
- Add
rounded
andsquare
helix profile options to Cartoon representation (in addition to the defaultelliptical
)
- Add additional measurement controls: orientation (box, axes, ellipsoid) & plane (best fit)
- Improve aromatic bond visuals (add
aromaticScale
,aromaticSpacing
,aromaticDashCount
params) - [Breaking] Change
adjustCylinderLength
default tofalse
(set to true for focus representation) - Fix marker highlight color overriding select color
- CellPack extension update
- add binary model support
- add compartment (including membrane) geometry support
- add latest mycoplasma model example
- Prefer WebGL1 in Safari 15.1.
- Fix sequence viewer for PDB files with COMPND record and multichain entities.
- Fix index pair bonds order assignment
- Fix pickScale not taken into account in line/point shader
- Add pixel-scale, pick-scale & pick-padding GET params to Viewer app
- Fix selecting bonds not adding their atoms in selection manager
- Add
preferAtoms
option to SelectLoci/HighlightLoci behaviors - Make the implicit atoms of bond visuals pickable
- Add
preferAtomPixelPadding
to Canvas3dInteractionHelper
- Add
- Add points & crosses visuals to Line representation
- Add
pickPadding
config option (look around in case target pixel is empty) - Add
multipleBonds
param to bond visuals with options: off, symmetric, offset - Fix
argparse
config in servers.
- Fix direct volume shader
- Prefer WebGL1 on iOS devices until WebGL2 support has stabilized.
- Add Charmm saccharide names
- Treat missing occupancy column as occupancy of 1
- Fix line shader not accounting for aspect ratio
- [Breaking] Fix point repr & shader
- Was unusable with
wboit
- Replaced
pointFilledCircle
&pointEdgeBleach
params bypointStyle
(square, circle, fuzzy) - Set
pointSizeAttenuation
to false by default - Set
sizeTheme
touniform
by default
- Was unusable with
- Add
markerPriority
option to Renderer (useful in combination with edges of marking pass) - Add support support for
chem_comp_bond
andstruct_conn
categories (fixes ModelServer behavior where these categories should have been present) - Model and VolumeServer: fix argparse config
- Take include/exclude flags into account when displaying aromatic bonds
- Improve marking performance
- Avoid unnecessary draw calls/ui updates when marking
- Check if loci is superset of visual
- Check if loci overlaps with unit visual
- Ensure
Interval
is used for ranges instead ofSortedArray
- Add uniform marker type
- Special case for reversing previous mark
- Add optional marking pass
- Outlines visible and hidden parts of highlighted/selected groups
- Add highlightStrength/selectStrength renderer params
- Add
invertCantorPairing
helper function - Add
Mesh
processing helper.smoothEdges
- Smooth border of molecular-surface with
includeParent
enabled - Hide
includeParent
option from gaussian-surface visuals (not particularly useful) - Improved
StructureElement.Loci.size
performance (for marking large cellpack models) - Fix new
TransformData
issues (camera/bounding helper not showing up) - Improve marking performance (avoid superfluous calls to
StructureElement.Loci.isWholeStructure
)
- Fix
TransformData
issues #133 - Fix
mol-script
query compiler const expression recognition.
- Add surrounding atoms (5 Angstrom) structure selection query
- [Breaking] Add maxDistance prop to
IndexPairBonds
- Fix coordinateSystem not handled in
Structure.asParent
- Add
dynamicBonds
toStructure
props (force re-calc on model change)- Expose as optional param in root structure transform helper
- Add overpaint support to geometry exporters
InputObserver
improvements- normalize wheel speed across browsers/platforms
- support Safari gestures (used by
TrackballControls
) PinchInput.fractionDelta
and use it inTrackballControls
- Add
tubularHelices
parameter to Cartoon representation - Add
SdfFormat
and update SDF parser to be able to parse data headers according to spec (hopefully :)) #230 - Fix mononucleotides detected as polymer components (#229)
- Set default outline scale back to 1
- Improved DCD reader cell angle handling (interpret near 0 angles as 90 deg)
- Handle more residue/atom names commonly used in force-fields
- Add USDZ support to
geo-export
extension. - Fix
includeParent
support for multi-instance bond visuals. - Add
operator
Loci granularity, selecting everything with the same operator name. - Prefer
_label_seq_id
fields in secondary structure assignment. - Support new EMDB API (https://www.ebi.ac.uk/emdb/api/entry/map/[EMBD-ID]) for EM volume contour levels.
Canvas3D
tweaks:- Update
forceDraw
logic. - Ensure the scene is re-rendered when viewport size changes.
- Support
noDraw
mode inPluginAnimationLoop
.
- Update
- Add parameter for to display aromatic bonds as dashes next to solid cylinder/line.
- Add backbone representation
- Fix outline in orthographic mode and set default scale to 2.
- Add ability to specify
volumeIndex
inViewer.loadVolumeFromUrl
to better support Volume Server inputs. - Support in-place reordering for trajectory
Frame.x/y/z
arrays for better memory efficiency. - Fixed text CIF encoder edge cases (most notably single whitespace not being escaped).
- Add glTF (GLB) and STL support to
geo-export
extension. - Protein crosslink improvements
- Change O-S bond distance to allow for NOS bridges (doi:10.1038/s41586-021-03513-3)
- Added NOS-bridges query & improved disulfide-bridges query
- Fix #178:
IndexPairBonds
for non-single residue structures (bug due to atom reordering). - Add volumetric color smoothing for MolecularSurface and GaussianSurface representations (#173)
- Fix nested 3d grid lookup that caused results being overwritten in non-covalent interactions computation.
- Basic implementation of
BestDatabaseSequenceMapping
(parse from CIF, color theme, superposition). - Add atom id ranges support to Selection UI.
- Ability to pass
Canvas3DContext
toPluginContext.fromCanvas
. - Relative frame support for
Canvas3D
viewport. - Fix bug in screenshot copy UI.
- Add ability to select residues from a list of identifiers to the Selection UI.
- Fix SSAO bugs when used with
Canvas3D
viewport. - Support for full pausing (no draw) rendering:
Canvas3D.pause(true)
. - Add
MeshBuilder.addMesh
. - Add
Torus
primitive. - Lazy volume loading support.
- [Breaking]
Viewer.loadVolumeFromUrl
signature change.loadVolumeFromUrl(url, format, isBinary, isovalues, entryId)
=>loadVolumeFromUrl({ url, format, isBinary }, isovalues, { entryId, isLazy })
- Add
TextureMesh
support togeo-export
extension.
- [WIP] Mesh export extension
Structure.eachAtomicHierarchyElement
(#161)- Fixed reading multi-line values in SDF format
- Fixed Measurements UI labels (#166)
- Add support for
ColorTheme.palette
designed for providing gradient-like coloring. - [Breaking] The
zip
function is now asynchronous and expects aRuntimeContext
. Also addedZip()
returning aTask
. - [Breaking] Add
CubeGridFormat
inalpha-orbitals
extension.
- Add
Canvas3D.getRenderObjects
. - [WIP] Animate state interpolating, including model trajectories
- Recognise MSE, SEP, TPO, PTR and PCA as non-standard amino-acids.
- Fix VolumeFromDensityServerCif transform label
- Exclude tsconfig.commonjs.tsbuildinfo from npm bundle
Too many changes to list as this is the start of the changelog... Notably, default exports are now forbidden.