Repository navigation
RayMol 1.13.0
A feature release built around studio lights: spot lights you place around the molecule, each with its own colour, beam and shadow, shining through haze and floating dust. Plus a new documentation site, SNFG glycan cartoons, 4K movie export, private MSA servers in the Predict bar, a keyboard shortcut sheet, and a long list of rendering fixes.
Studio lights
- Light the scene like a photo studio. A rig holds up to six spot lights. Each has its own place around the molecule, colour, warmth, beam width and edge softness, brightness and highlight, and any three of them can cast their own shadows. The rig belongs to the scene: it never changes an object's colours, materials or settings, and
lights offgives PyMOL's own lighting back exactly as it was. - Seven presets to start from:
three_point,softbox,spotlight,rembrandt,neon,sunsetandunderlight. Typelights three_point, or pick one from Presets in Lights mode. - Lights mode (⌃L). Choose Enter Lights Mode in the Tools menu, or press ⌃L. A bar at the top of the viewport holds the light menu (pick, add or remove a light, and toggle its Shadow, Pin and colour), Presets, Re-centre, Atmosphere, the on/off switch, Revert and Done. Beside the scene, an orbit view shows the rig from above (drag a lamp round it, drag the square on its ring for the distance, and the pitch arc for the height), and the inspector below it holds each light's exact values, including Exposure. PyMOL's "zoom next ligand" moves from ⌃L to ⌃G.
- Knobs on the molecule. In Lights mode every light is a knob on a sphere around the molecule: drag it to move the light, drag the selected light's rings to set its beam and softness, drag its aim dot to point it at the surface under the pointer (double-click it to aim back at the centre), scroll over it to move it closer or further, and nudge it with the arrow keys. Option-click the molecule to put a highlight exactly there.
- Or type it.
lights key, warmth=3800, intensity=1.3edits a light,lights add, back, orbit=180adds one, andlightsprints the rig.target=aims a light at a selection and fits the beam to it;highlight=places a light so the selection shows a highlight, andrim=turns that into a rim light. Camera lights follow your view;pin=1fixes a light in the scene so it turns with the molecule. The same rig iscmd.lights,cmd.get_lightsandcmd.set_lightsfrom Python. - Coloured shadows, one per light. A red light's shadow is where the red light does not reach. New lights cast shadows by default, up to the cap of three. Studio shadows work with Metal ray tracing on or off, and in grid mode each cell is shadowed only by its own objects. They need the scene's Shadows switch on; the inspector offers Turn On when it is off.
- Soft shadows from light size. With Metal ray tracing on, a light with a Size above 0 casts soft shadows on opaque surfaces, traced towards the light, with a wider penumbra as the size grows.
- Haze and dust.
atmosphere haze=0.3, dust=0.5, or the Atmosphere popover on the Lights bar (Haze, Dust, Dust size, Dust speed, Dust glow, Dust opacity and Scatter (g)), fills the beams with haze and floating dust. A shadowed light casts light shafts through the haze. The dust drifts in the live view at up to 30 redraws a second, only while RayMol is active and its window visible, and holds still in Low Power Mode or when the Mac runs hot;metal_light_air_timepins it for repeatable renders. The hints say why the air does not show (no light, or the lights off) and warn when haze with a light behind the molecule can wash the picture out. - Bright lights keep their colour. Under a rig, light is kept in high dynamic range and rolled off once at the end with a filmic curve, so a bright coloured light rolls off towards white keeping its hue instead of whitening early, up to
intensity4. With a rig on, Exposure (metal_exposure) scales what the lights light and the air, not the background or labels, which makes it the way to tame a bright rig or backlit haze.set metal_light_hdr, 2brings back the 8-bit look. - Materials keep their character under studio lights. Jelly keeps its broad soft sheen, rubber and jelly highlights take their own richer tint, and plastic and metallic carry a crisp white clear-coat glint over their coloured lobe (a Custom tint of 1 gives a bare metal with no coat), in the viewport and in traced reflections. Under HDR a shiny material's highlight is no longer squeezed twice, so it reaches the brightness it was designed for.
- The Inspector's Lighting group follows the rig. A Studio lights switch turns the rig on or off outside Lights mode, and Open Lights tool enters it. While the rig is on, the Ambient, Direct, Reflect and Specular rows it overrides are greyed out with a note saying why.
- Saved with your work. Sessions save the rig and its air. Each scene stores its own rig, recalling a scene brings it back, and scene movies blend the lights and the air from scene to scene with the camera.
render.pyscene files takeafter_riglines. - Exports keep the look. Image exports from the app, Ray-traced (AO + shadows) included, render with Metal and keep the studio lights, as does the MCP
capture_viewporttool. PyMOL's CPUraycommand (andpng ..., ray=1) keeps PyMOL's own lights and prints a one-line note saying so. - Haze in transparent exports.
set metal_light_air_alpha, 1keeps haze and dust over empty background in a transparent-background PNG, instead of cutting them out with the background. It is off by default, so existing exports are unchanged. - No rig, no change. Without a rig every image is exactly the one the previous version drew, so existing sessions look the same.
See the Studio Lights guide for every command, field and setting, the Lights mode controls, performance switches and the known limits.
Documentation
- A documentation site. Guides, the command reference and the full Studio Lights guide are at javierbq.github.io/RayMol. Help ▸ RayMol Documentation opens it, and the About panel links to it.
Glycans
- SNFG glycan cartoons.
glycocartoondraws each recognised sugar as its 3D SNFG symbol (blue cubes for GlcNAc, green spheres for mannose, red cones for fucose, and so on) with linkers along the glycosidic bonds, and hides the sugar sticks underneath;glycocartoon_hideputs the sticks back. In the Objects panel it is Glycan cartoon in an object's S and H menus, and SNFG glycan palette in its C menu colours the atoms without the symbols. Click a symbol to pick its residue. - Glycan topology. A sheet from the Objects panel shows each glycan as a tree, with its linkages and ring puckering.
Movies
- Export at 1080p, 1440p or 4K, or any custom size. Quality presets (Draft to Maximum, or Custom) raise tessellation, ray-traced samples, anti-aliasing and depth of field for the export only, with up to 4× supersampling. Encode as H.264, HEVC, ProRes 422 or a PNG sequence, with bitrate and frame-rate overrides. The sheet shows a live time estimate and a Cancel button, and remembers your last options.
cmd.movie_exportdoes the same from scripts. - Roll and Rock take a 32 s duration.
- Fixed: scene movies blend settings and lights across the loop wrap, renaming a scene keeps its movie tracks, scene blends are authored from the marker frames, and a scripted
movie_exportwaits for the renderer.
Structure prediction
- Use your own MSA server. The Predict bar's server field is now a dropdown: ColabFold (public) plus the private servers you add with +, and Edit… to choose the default or delete one.
msa_server URLis remembered across launches (msa_server resetforgets it). Before sequences go to the public ColabFold server, RayMol asks first. - Fixed: a failed MSA search no longer hangs on "Building 1 alignment…".
Keyboard and command line
- Keyboard shortcut sheet. Help ▸ Keyboard Shortcuts (⌘/) lists every app shortcut and the viewport keys.
- Bare F-keys recall scenes. F1–F12 recall the scene (or view) of that name, as in desktop PyMOL; ⌃F1–⌃F12 still store them.
- Your ALT- and CTSH- key bindings can fire while typing. Turn on View ▸ Send Key Bindings to Viewport While Typing; RayMol also says at startup when
~/.raymolrcbinds keys that only fire while the command line is unfocused. fastaprints a copyable FASTA of the enabled objects to the console, one record per chain.- Save only some objects. Save Structure asks which objects (or the current selection) to write when there is more than one.
cmd.get_coordsworks in the app; it used to returnNone.
Rendering fixes
- Fixed: glass and frosted glass did not draw on spheres and ball-and-stick.
- Fixed: background gradients and colour-ramp gadgets were missing in the Metal renderer.
- Fixed: labels in a scene with transparency came out magenta or vanished.
- Fixed: a stick cut by the near clipping plane drew a flat disc where the stick did not reach, and ray-traced strip smoothing left a seam on flat quads.
- Fixed: objects with per-state matrices (
matrix_mode1 or 2) drew at the wrong place. - Fixed: the move gizmo and overlays cast shadows and showed up in ray-traced reflections.
- Fixed: exports could start with the wrong background colour.
- Fixed: a grid-mode
rayleft its grid layout behind. - Automatic colours skip shades that vanish on a light background, so a plain
loadorfetchon the Paper or Dawn theme never comes out near-white.
Other fixes
- Fixed: atoms in objects hidden by a disabled group could still be picked.
- Fixed: entering another mode did not leave Box Select.
- Sessions: restoring a session no longer applies an uninitialised view, non-ASCII scene names from older sessions load, a partial restore leaves your MSA, metrics and notes alone, and
reinitializeforgets scene extras and the scene movie. - Notes preview renders headings, lists, quotes and code blocks, not just bold and italics.
- A scripted launch keeps its own render toggles.
- The app no longer ships any Homebrew libraries, which fixes a launch crash some test builds hit.
- Faster: the Inspector checks shown representations with one query, studio shadow maps are reused while nothing they depend on changes, and a dust-only redraw re-runs only the final pass.
Built on the open-source PyMOL engine. Updates install automatically via the in-app updater (Check for Updates… in the app menu).