Alexander Rose's Avatar

Alexander Rose

@asrose.bsky.social

Scientific software engineer & computational structural biologist, #molstar web molecular graphics developer.

556 Followers  |  560 Following  |  13 Posts  |  Joined: 18.08.2023  |  2.2499

Latest posts by asrose.bsky.social on Bluesky

Preview
PDB101: Register for the Aug 11 Virtual Office Hour on Pairwise Alignment PDB-101: Training, Outreach, and Education portal of RCSB PDB

Register for the Aug 11 Virtual Office Hour on Pairwise Alignment
Learn how to align one or more protein chains to a reference structure in a pairwise manner
pdb101.rcsb.org/news...

05.08.2025 16:12 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

New release for #ipymolstar: I've added a widget for the amazing and very powerful MolViewSpec. This allows you to control the cameraπŸ“·from python🐍, as well as all other molviewspec features πŸŽ‰

ipymolstar repo: github.com/jhsmit/ipymo...
Molviewspec: molstar.org/mol-view-spec/

10.04.2025 10:23 β€” πŸ‘ 9    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0
Post image

sorry, trying better res

17.03.2025 00:25 β€” πŸ‘ 33    πŸ” 10    πŸ’¬ 2    πŸ“Œ 3
Post image

Isosurface of X-ray density only lit by emissive slice of same density. Illuminated in #molstar.

18.01.2025 06:57 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Ipymolstar Annotate Colors - a Hugging Face Space by Jhsmit Annotate protein structural models with colors

You can try it on Huggingface: huggingface.co/spaces/Jhsmi...

The data is only encoded in the link and not stored so you can use it to share unpublished data*

(at your own risk, no warranty, links might stop working)

06.12.2024 15:17 β€” πŸ‘ 4    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

Here's a neat way to share you protein-annotated data πŸš€πŸ§ͺ

Upload your .csv with residue/value data, select data column, colormap and norm to interactively color your protein model.

Then, add title/description and click the button to open a shareable view with url-encoded data and settings.

06.12.2024 15:17 β€” πŸ‘ 5    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

A quick molecule of the month render for November's Malaria Parasite PTEX (pdb101.rcsb.org/motm/299) using #b3d and #MolecularNodes

#GeometryNodes #SciArt

01.12.2024 05:52 β€” πŸ‘ 65    πŸ” 6    πŸ’¬ 2    πŸ“Œ 0
Video thumbnail

#ipymolstar v0.0.9: Added click interactions

try it on pycafΓ©: py.cafe/jhsmit/ipymo...

29.11.2024 16:58 β€” πŸ‘ 4    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

Splendid, thank you

23.11.2024 22:36 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Try Mol* illumination mode: molstar.org/viewer/?illu...

Example: molstar.org/viewer/?snap...

17.11.2024 21:49 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Integration

Progressive rendering
Keep viewport interactive
Use requestAnimationFrame
Also check `gl.SYNC_GPU_COMMANDS_COMPLETE` if available
Because requestAnimationFrame may fire even if GPU is still busy
Adjust quality parameters based on previous iterations’ render time
Adjust denoise threshold to hide graininess
So instead of grainy to non-grainy it goes from blurry to non-blurry
Screenshots
Browsers may lose the WebGL context if render time of a single frame is too large or too many frames are submitted to the GPU
Check `gl.SYNC_GPU_COMMANDS_COMPLETE` if available, otherwise use `gl.readPixels` to wait
Anti-aliasing
Since normals and direct-light are pre-calculated, jittering rays is not enough
Recalculate normals and direct light with jittered camera, trace and blend

Integration Progressive rendering Keep viewport interactive Use requestAnimationFrame Also check `gl.SYNC_GPU_COMMANDS_COMPLETE` if available Because requestAnimationFrame may fire even if GPU is still busy Adjust quality parameters based on previous iterations’ render time Adjust denoise threshold to hide graininess So instead of grainy to non-grainy it goes from blurry to non-blurry Screenshots Browsers may lose the WebGL context if render time of a single frame is too large or too many frames are submitted to the GPU Check `gl.SYNC_GPU_COMMANDS_COMPLETE` if available, otherwise use `gl.readPixels` to wait Anti-aliasing Since normals and direct-light are pre-calculated, jittering rays is not enough Recalculate normals and direct light with jittered camera, trace and blend

A few notes on integrating SSGI into Mol*.

17.11.2024 21:47 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Thickness

For tracing in screen-space we need to estimate the thickness
Automatic thickness (estimate)
Base thickness as max(backface depth) - min(frontface depth)
Per object density factor to adjust base thickness
Fixed thickness
Want to avoid as we have representations with different β€œdensities”
Still support in-case user wants to do manual tweaks

Thickness For tracing in screen-space we need to estimate the thickness Automatic thickness (estimate) Base thickness as max(backface depth) - min(frontface depth) Per object density factor to adjust base thickness Fixed thickness Want to avoid as we have representations with different β€œdensities” Still support in-case user wants to do manual tweaks

For tracing in screen-space we need to recover thickness.
Want it automatic, not fiddle with parameters.

Insight: Molecules are shown with visuals of very different density.

So we do 2 things
1) Base thickness from front- and back-face depth
2) Density factor to adjust for each type of visual

17.11.2024 21:47 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Tracing

Inputs
Shaded color (rgba, standard pass)
Normal (xyz) + emissive strength (w)
Diffuse color (rgb) + β€œdensity” (a)
Front depth
Back depth
Sampling
Backwards Monte Carlo
Only diffuse (β€œspecular” from shaded input)
Russian Roulette to boost non-terminated rays
Tracing
Hit background
Return background color
Hit surface, then nothing
Return shaded color
Hit surface, bounce x times, then nothing
Return shaded color plus accumulated diffuse of bounces
Hit surface, bounce more than x times
Return no color

Tracing Inputs Shaded color (rgba, standard pass) Normal (xyz) + emissive strength (w) Diffuse color (rgb) + β€œdensity” (a) Front depth Back depth Sampling Backwards Monte Carlo Only diffuse (β€œspecular” from shaded input) Russian Roulette to boost non-terminated rays Tracing Hit background Return background color Hit surface, then nothing Return shaded color Hit surface, bounce x times, then nothing Return shaded color plus accumulated diffuse of bounces Hit surface, bounce more than x times Return no color

Inputs are rendered by the same shader code as the standard rendering. There are just two extra output targets: normal + emissive strength and diffuse + density. Additionally we do a pass to get back face depth.

17.11.2024 21:47 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Passes

On change (camera, geometry, lighting, …)
Transparent geometry pass
Post-processing input passes
(outline, marking, transparent ssao)
Tracing input pass
Backface depth pass
Sampling
Tracing sample pass
Compose
Compose pass
(denoise, blend transparent geometry, apply outlines, transparent ssao)
Background pass
Antialiasing pass
Bloom pass
DoF pass

Passes On change (camera, geometry, lighting, …) Transparent geometry pass Post-processing input passes (outline, marking, transparent ssao) Tracing input pass Backface depth pass Sampling Tracing sample pass Compose Compose pass (denoise, blend transparent geometry, apply outlines, transparent ssao) Background pass Antialiasing pass Bloom pass DoF pass

Main idea is to treat the SSGI as a progressive enhancement of sorts. Try to reuse as many of the passes used for normal rendering. And keep the overall look as similar as possible.

17.11.2024 21:47 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

High quality lighting from "path-traced" screen-space global illumination. Even works with only emissive lights.

17.11.2024 21:47 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
About Mol*

Suite of tools for 3D molecular data on the web
Custom WebGL rendering engine
Scales from single atoms to cells with billions

Wanted nicer lighting that still scales
β€œPath-traced” SSGI
Screen-space, so OK with billions of atoms
Sample-based, so good to adjust quality

About Mol* Suite of tools for 3D molecular data on the web Custom WebGL rendering engine Scales from single atoms to cells with billions Wanted nicer lighting that still scales β€œPath-traced” SSGI Screen-space, so OK with billions of atoms Sample-based, so good to adjust quality

Gave a short presentation on Illuminating Molecules in #molstar at the November 2024 #WebGL & #WebGPU Meetup

www.khronos.org/events/webgl...

17.11.2024 21:47 β€” πŸ‘ 14    πŸ” 5    πŸ’¬ 1    πŸ“Œ 0

How long does the denoiser take compared to the rest?

16.11.2024 01:06 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Hard to judge detail quality but looks so smooth, very nice.

16.11.2024 01:06 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Efficient Scene Appearance Aggregation for Level-of-Detail Rendering

Significant new work on LOD of aggregates! mangosister.github.io/scene_agn_si...

15.11.2024 18:19 β€” πŸ‘ 79    πŸ” 19    πŸ’¬ 2    πŸ“Œ 1
Video thumbnail

πŸš€ Excited about our pre-print:
AlphaBridge: A User-Friendly Tool for Interpreting Protein Predictions

Whether you're an expert or just new to the field of Protein Prediction, AlphaBridge is the way to go!

πŸ”Try it and share your thoughts!
πŸ“œ Article: www.biorxiv.org/content/10.1...

28.10.2024 19:03 β€” πŸ‘ 51    πŸ” 12    πŸ’¬ 1    πŸ“Œ 1

Very cool to see the cell floating in midair

08.11.2024 20:22 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
InterProt Interpreting Proteins through Language Models

InterProt (interprot.com#/sae-viz/SAE...) is a tool that applies the same interpretability analysis used to make Golden Gate Claude to protein language models. For example feature 4000 recognizes residues lining inside of de novo designed & natural transmembrane beta-barrels (PDBs 6X1K, 6X9Z, 2MLH)

08.11.2024 07:20 β€” πŸ‘ 15    πŸ” 4    πŸ’¬ 1    πŸ“Œ 1
Video thumbnail

Two-way tertiary/primary structure hover and highlight with #ipymolstar and #altair

Try it on pycafe: py.cafe/jhsmit/ipymo...

07.11.2024 15:21 β€” πŸ‘ 5    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

Ionic lock in inactive rhodopsin - illuminated in #molstar

26.10.2024 00:22 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@asrose is following 20 prominent accounts