Skip to main content

Benchmark Cases

Every prompt in the benchmark, with the pipeline that answers it and the picture that pipeline draws. See LLM Benchmark for how these are captured and what the images prove.

molecule-basic

Show a molecule with its chemical bonds.

Fixture: caffeine_water.pdb · Tags: molecule, basic

molecule-basic

Caffeine in water with its chemical bonds drawn.

Nodes: add_bond, load_structure, load_trajectory, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "caffeine_water.pdb",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "load_trajectory",
"fileName": "caffeine_water_vibration.xtc",
"source": "file",
"id": "traj-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "add_bond",
"bondSource": "structure",
"id": "addbond-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "traj-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "traj-1",
"target": "symmetry-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "addbond-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "addbond-1",
"target": "viewport-1",
"sourceHandle": "bond",
"targetHandle": "bond"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
}
]
}
Where this pipeline came from

pipeline template "molecule" applied via store.applyTemplate, then edited through the editor store

molecule-no-bonds

Just display the atoms of my structure, no bonds at all.

Fixture: caffeine_water.pdb · Tags: molecule, basic

molecule-no-bonds

Atoms only — no bond cylinders anywhere.

Nodes: load_structure, load_trajectory, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "caffeine_water.pdb",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "load_trajectory",
"fileName": "caffeine_water_vibration.xtc",
"source": "file",
"id": "traj-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "traj-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "traj-1",
"target": "symmetry-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
}
]
}
Where this pipeline came from

pipeline template "molecule" applied via store.applyTemplate, then edited through the editor store; add_bond removed

molecule-trajectory

Load a protein and play its MD trajectory with bonds.

Fixture: caffeine_water.pdb · Tags: molecule, trajectory

molecule-trajectory

The structure with bonds and a trajectory loaded, so the timeline can play frames.

caution

This picture cannot grade the prompt. a SerializedPipeline carries the load_trajectory node but not its frames, and deserialize clears them, so after the round trip this pipeline draws exactly what molecule-basic draws — measured byte-identical. The product drops the frames the same way (PipelineChatBox re-attaches only the loaded structure), so no pipeline can draw a different picture for this prompt and the image grades nothing. The rubric is the only check available for this case.

Nodes: add_bond, load_structure, load_trajectory, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "caffeine_water.pdb",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "load_trajectory",
"fileName": "caffeine_water_vibration.xtc",
"source": "file",
"id": "traj-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "add_bond",
"bondSource": "structure",
"id": "addbond-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "traj-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "traj-1",
"target": "symmetry-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "addbond-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "addbond-1",
"target": "viewport-1",
"sourceHandle": "bond",
"targetHandle": "bond"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
}
]
}
Where this pipeline came from

pipeline template "molecule" applied via store.applyTemplate, then edited through the editor store

crystal-polyhedra

Visualize a perovskite crystal with coordination polyhedra around the metal atoms.

Fixture: perovskite_srtio3_3x3x3.xyz · Tags: solid, polyhedra

crystal-polyhedra

The perovskite with coordination polyhedra around its metal centres.

caution

The runner does not assert this image. Over 3 independent boots the same pipeline produced renders differing by up to 0% of pixels: did not reproduce in every run. The pipeline is not what varies: across independent boots the store's viewport state is bit-identical (same atom count, same position checksums, same bond count, same mesh vertex and coordinate checksums) and __megane_test.getCameraState() returns the same position, target and zoom to the last float — but that API does not report the orthographic frustum, and the framing is what differs. Clicking Reset View changes neither mode (before and after are byte-identical), so the fit is settled by the time it runs. The split is by fixture: every case on caffeine_water.pdb reproduced in every run made, and every case on another fixture differed in at least one — including cases whose three-boot sample agreed, which is why agreement alone is not treated as evidence here (crystal-distance-bonds reproduced three times and then differed by 6.9% on the next render).

Nodes: coordination_generator, drawing_boundary, load_structure, polyhedron_generator, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "perovskite_srtio3_3x3x3.xyz",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "drawing_boundary",
"xMin": 0,
"xMax": 1,
"yMin": 0,
"yMax": 1,
"zMin": 0,
"zMax": 1,
"id": "drawing-boundary-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "coordination_generator",
"excludedCenters": [],
"excludedLigands": [],
"cutoffTolerance": 1.15,
"boundaryMode": "complete",
"id": "coordination-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
},
{
"type": "polyhedron_generator",
"opacity": 0.5,
"showEdges": false,
"edgeColor": "#dddddd",
"edgeWidth": 3,
"id": "polyhedron-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 2160
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "drawing-boundary-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "drawing-boundary-1",
"target": "coordination-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "drawing-boundary-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "coordination-1",
"target": "viewport-1",
"sourceHandle": "bond",
"targetHandle": "bond"
},
{
"source": "coordination-1",
"target": "polyhedron-1",
"sourceHandle": "coordination",
"targetHandle": "coordination"
},
{
"source": "polyhedron-1",
"target": "viewport-1",
"sourceHandle": "mesh",
"targetHandle": "mesh"
}
]
}
Where this pipeline came from

pipeline template "solid" applied via store.applyTemplate, then edited through the editor store

crystal-distance-bonds

I have a crystal XYZ file without bond records. Show it with distance-based bonds and the unit cell.

Fixture: perovskite_srtio3_3x3x3.xyz · Tags: solid, bonds

crystal-distance-bonds

The crystal with distance-inferred bonds and its unit cell drawn.

caution

The runner does not assert this image. Over 3 independent boots the same pipeline produced renders differing by up to 0% of pixels: did not reproduce in every run. The pipeline is not what varies: across independent boots the store's viewport state is bit-identical (same atom count, same position checksums, same bond count, same mesh vertex and coordinate checksums) and __megane_test.getCameraState() returns the same position, target and zoom to the last float — but that API does not report the orthographic frustum, and the framing is what differs. Clicking Reset View changes neither mode (before and after are byte-identical), so the fit is settled by the time it runs. The split is by fixture: every case on caffeine_water.pdb reproduced in every run made, and every case on another fixture differed in at least one — including cases whose three-boot sample agreed, which is why agreement alone is not treated as evidence here (crystal-distance-bonds reproduced three times and then differed by 6.9% on the next render).

Nodes: add_bond, drawing_boundary, load_structure, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "perovskite_srtio3_3x3x3.xyz",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "drawing_boundary",
"xMin": 0,
"xMax": 1,
"yMin": 0,
"yMax": 1,
"zMin": 0,
"zMax": 1,
"id": "drawing-boundary-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 2160
},
"enabled": true
},
{
"type": "add_bond",
"bondSource": "distance",
"id": "node-1",
"position": {
"x": 425,
"y": 2360
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "drawing-boundary-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "drawing-boundary-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "drawing-boundary-1",
"target": "node-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "node-1",
"target": "viewport-1",
"sourceHandle": "bond",
"targetHandle": "bond"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
}
]
}
Where this pipeline came from

pipeline template "solid" applied via store.applyTemplate, then edited through the editor store; add_bond bondSource=distance. Re-captured through the editor store (removeNode) without the template's coordination_generator / polyhedron_generator: their translucent polyhedra covered the sticks, so deleting add_bond changed only a few dozen pixels and the counterexample could not discriminate once the default view moved to the standard orientation (#661). The prompt asks for bonds and the cell, not polyhedra.

crystal-polyhedra-exclude

Show coordination polyhedra for an oxide but skip titanium (Z=22) as a center, keep only the others.

Fixture: perovskite_srtio3_3x3x3.xyz · Tags: solid, polyhedra, params

crystal-polyhedra-exclude

Coordination polyhedra with titanium skipped as a centre — only the other metal's polyhedra remain.

caution

This picture cannot grade the prompt. excluding titanium as a coordination centre barely changes the picture. Rendered in the same page, the reference and the same pipeline with an empty exclusion list differ by 0.0033% of pixels — about 34 of them — because the strontium-centred polyhedra already cover the same volume in this projection. The case's own render-to-render noise is 4.2%, more than a thousand times the signal, so no pixel budget separates the right answer from the wrong one. The rubric checks coordination_generator.excludedCenters instead. The rubric is the only check available for this case.

caution

The runner does not assert this image. Over 3 independent boots the same pipeline produced renders differing by up to 4.2171% of pixels: did not reproduce in every run. The pipeline is not what varies: across independent boots the store's viewport state is bit-identical (same atom count, same position checksums, same bond count, same mesh vertex and coordinate checksums) and __megane_test.getCameraState() returns the same position, target and zoom to the last float — but that API does not report the orthographic frustum, and the framing is what differs. Clicking Reset View changes neither mode (before and after are byte-identical), so the fit is settled by the time it runs. The split is by fixture: every case on caffeine_water.pdb reproduced in every run made, and every case on another fixture differed in at least one — including cases whose three-boot sample agreed, which is why agreement alone is not treated as evidence here (crystal-distance-bonds reproduced three times and then differed by 6.9% on the next render).

Nodes: coordination_generator, drawing_boundary, load_structure, polyhedron_generator, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "perovskite_srtio3_3x3x3.xyz",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "drawing_boundary",
"xMin": 0,
"xMax": 1,
"yMin": 0,
"yMax": 1,
"zMin": 0,
"zMax": 1,
"id": "drawing-boundary-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "coordination_generator",
"excludedCenters": [
22
],
"excludedLigands": [],
"cutoffTolerance": 1.15,
"boundaryMode": "complete",
"id": "coordination-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
},
{
"type": "polyhedron_generator",
"opacity": 0.5,
"showEdges": false,
"edgeColor": "#dddddd",
"edgeWidth": 3,
"id": "polyhedron-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 2160
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "drawing-boundary-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "drawing-boundary-1",
"target": "coordination-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "drawing-boundary-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "coordination-1",
"target": "viewport-1",
"sourceHandle": "bond",
"targetHandle": "bond"
},
{
"source": "coordination-1",
"target": "polyhedron-1",
"sourceHandle": "coordination",
"targetHandle": "coordination"
},
{
"source": "polyhedron-1",
"target": "viewport-1",
"sourceHandle": "mesh",
"targetHandle": "mesh"
}
]
}
Where this pipeline came from

pipeline template "solid" applied via store.applyTemplate, then edited through the editor store; coordination_generator.excludedCenters=[22]

filter-carbon

Display only the carbon atoms of my structure.

Fixture: caffeine_water.pdb · Tags: filter, params

filter-carbon

Only the carbon atoms and the bonds between them; every other element hidden.

Nodes: add_bond, filter ×2, load_structure, load_trajectory, modify ×2, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "caffeine_water.pdb",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "load_trajectory",
"fileName": "caffeine_water_vibration.xtc",
"source": "file",
"id": "traj-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "add_bond",
"bondSource": "structure",
"id": "addbond-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
},
{
"type": "filter",
"query": "not element == \"C\"",
"bond_query": "",
"id": "node-5",
"position": {
"x": 425,
"y": 2000
},
"enabled": true
},
{
"type": "modify",
"scale": 1,
"opacity": 0,
"id": "node-6",
"position": {
"x": 425,
"y": 2200
},
"enabled": true
},
{
"type": "filter",
"query": "",
"bond_query": "not both element == \"C\"",
"id": "node-7",
"position": {
"x": 425,
"y": 2400
},
"enabled": true
},
{
"type": "modify",
"scale": 1,
"opacity": 0,
"id": "node-8",
"position": {
"x": 425,
"y": 2600
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "traj-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "traj-1",
"target": "symmetry-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "addbond-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "node-5",
"sourceHandle": "particle",
"targetHandle": "in"
},
{
"source": "node-5",
"target": "node-6",
"sourceHandle": "out",
"targetHandle": "in"
},
{
"source": "node-6",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "particle"
},
{
"source": "addbond-1",
"target": "node-7",
"sourceHandle": "bond",
"targetHandle": "in"
},
{
"source": "node-7",
"target": "node-8",
"sourceHandle": "out",
"targetHandle": "in"
},
{
"source": "node-8",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "bond"
}
]
}
Where this pipeline came from

pipeline template "molecule" applied via store.applyTemplate, then edited through the editor store

filter-residue

Show only the alanine residues (resname ALA).

Fixture: 1ubq.pdb · Tags: filter, params

filter-residue

Only 1UBQ's two alanine residues — Ala28 and Ala46, five atoms each with their bonds. Everything else, protein and crystallographic water alike, is hidden.

caution

The runner does not assert this image. Over 3 independent boots the same pipeline produced renders differing by up to 0% of pixels: did not reproduce in every run. The pipeline is not what varies: across independent boots the store's viewport state is bit-identical (same atom count, same position checksums, same bond count, same mesh vertex and coordinate checksums) and __megane_test.getCameraState() returns the same position, target and zoom to the last float — but that API does not report the orthographic frustum, and the framing is what differs. Clicking Reset View changes neither mode (before and after are byte-identical), so the fit is settled by the time it runs. The split is by fixture: every case on caffeine_water.pdb reproduced in every run made, and every case on another fixture differed in at least one — including cases whose three-boot sample agreed, which is why agreement alone is not treated as evidence here (crystal-distance-bonds reproduced three times and then differed by 6.9% on the next render).

Nodes: add_bond, filter ×2, load_structure, modify ×2, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "1ubq.pdb",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 2160
},
"enabled": true
},
{
"type": "add_bond",
"bondSource": "distance",
"id": "node-1",
"position": {
"x": 600,
"y": 400
},
"enabled": true
},
{
"type": "filter",
"query": "not resname == \"ALA\"",
"bond_query": "",
"id": "node-2",
"position": {
"x": 200,
"y": 400
},
"enabled": true
},
{
"type": "modify",
"scale": 1,
"opacity": 0,
"id": "node-3",
"position": {
"x": 200,
"y": 560
},
"enabled": true
},
{
"type": "filter",
"query": "",
"bond_query": "not ((both atom_index >= 211 and both atom_index <= 215) or (both atom_index >= 358 and both atom_index <= 362))",
"id": "node-4",
"position": {
"x": 800,
"y": 400
},
"enabled": true
},
{
"type": "modify",
"scale": 1,
"opacity": 0,
"id": "node-5",
"position": {
"x": 800,
"y": 560
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "node-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "node-2",
"sourceHandle": "particle",
"targetHandle": "in"
},
{
"source": "node-2",
"target": "node-3",
"sourceHandle": "out",
"targetHandle": "in"
},
{
"source": "node-3",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "particle"
},
{
"source": "node-1",
"target": "node-4",
"sourceHandle": "bond",
"targetHandle": "in"
},
{
"source": "node-4",
"target": "node-5",
"sourceHandle": "out",
"targetHandle": "in"
},
{
"source": "node-5",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "bond"
}
]
}
Where this pipeline came from

pipeline template "protein" applied via store.applyTemplate, then rebuilt through the editor store: the template's own branches removed and the filter-carbon construction put in their place (full-opacity base stream plus filter -> modify(opacity 0) on the complement, for atoms and for bonds). The template cannot answer this prompt — it hides every protein atom and draws a cartoon built from the primary snapshot, which no upstream filter narrows.

filter-oxygen-nitrogen

Highlight just the oxygen and nitrogen atoms.

Fixture: caffeine_water.pdb · Tags: filter, params

filter-oxygen-nitrogen

Oxygens and nitrogens at full opacity; everything else faded back so they stand out.

Nodes: add_bond, filter, load_structure, load_trajectory, modify, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "caffeine_water.pdb",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "load_trajectory",
"fileName": "caffeine_water_vibration.xtc",
"source": "file",
"id": "traj-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "add_bond",
"bondSource": "structure",
"id": "addbond-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
},
{
"type": "filter",
"query": "not (element == \"O\" or element == \"N\")",
"bond_query": "",
"id": "node-13",
"position": {
"x": 425,
"y": 2000
},
"enabled": true
},
{
"type": "modify",
"scale": 1,
"opacity": 0.12,
"id": "node-14",
"position": {
"x": 425,
"y": 2200
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "traj-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "traj-1",
"target": "symmetry-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "addbond-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "addbond-1",
"target": "viewport-1",
"sourceHandle": "bond",
"targetHandle": "bond"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "node-13",
"sourceHandle": "particle",
"targetHandle": "in"
},
{
"source": "node-13",
"target": "node-14",
"sourceHandle": "out",
"targetHandle": "in"
},
{
"source": "node-14",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "particle"
}
]
}
Where this pipeline came from

pipeline template "molecule" applied via store.applyTemplate, then edited through the editor store

modify-scale

Show the molecule with the atoms drawn at half their normal size.

Fixture: caffeine_water.pdb · Tags: modify, params

modify-scale

Every atom drawn at half its normal radius.

Nodes: add_bond, load_structure, load_trajectory, modify, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "caffeine_water.pdb",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "load_trajectory",
"fileName": "caffeine_water_vibration.xtc",
"source": "file",
"id": "traj-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "add_bond",
"bondSource": "structure",
"id": "addbond-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
},
{
"type": "modify",
"scale": 0.5,
"opacity": 1,
"id": "node-1",
"position": {
"x": 425,
"y": 2000
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "traj-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "traj-1",
"target": "symmetry-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "addbond-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "addbond-1",
"target": "viewport-1",
"sourceHandle": "bond",
"targetHandle": "bond"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "node-1",
"sourceHandle": "particle",
"targetHandle": "in"
},
{
"source": "node-1",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "particle"
}
]
}
Where this pipeline came from

pipeline template "molecule" applied via store.applyTemplate, then edited through the editor store

modify-transparent

Make the structure semi-transparent so I can see through it.

Fixture: caffeine_water.pdb · Tags: modify, params

modify-transparent

The whole structure semi-transparent, so overlapping atoms show through.

Nodes: add_bond, load_structure, load_trajectory, modify, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "caffeine_water.pdb",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "load_trajectory",
"fileName": "caffeine_water_vibration.xtc",
"source": "file",
"id": "traj-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "add_bond",
"bondSource": "structure",
"id": "addbond-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
},
{
"type": "modify",
"scale": 1,
"opacity": 0.5,
"id": "node-2",
"position": {
"x": 425,
"y": 2000
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "traj-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "traj-1",
"target": "symmetry-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "addbond-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "addbond-1",
"target": "viewport-1",
"sourceHandle": "bond",
"targetHandle": "bond"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "node-2",
"sourceHandle": "particle",
"targetHandle": "in"
},
{
"source": "node-2",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "particle"
}
]
}
Where this pipeline came from

pipeline template "molecule" applied via store.applyTemplate, then edited through the editor store

labels-element

Display the structure and label every atom with its element symbol.

Fixture: caffeine_water.pdb · Tags: overlay, labels

labels-element

Every atom carrying its element symbol as a text label.

Nodes: add_bond, label_generator, load_structure, load_trajectory, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "caffeine_water.pdb",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "load_trajectory",
"fileName": "caffeine_water_vibration.xtc",
"source": "file",
"id": "traj-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "add_bond",
"bondSource": "structure",
"id": "addbond-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
},
{
"type": "label_generator",
"source": "element",
"id": "node-1",
"position": {
"x": 425,
"y": 2000
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "traj-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "traj-1",
"target": "symmetry-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "addbond-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "addbond-1",
"target": "viewport-1",
"sourceHandle": "bond",
"targetHandle": "bond"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "node-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "node-1",
"target": "viewport-1",
"sourceHandle": "label",
"targetHandle": "label"
}
]
}
Where this pipeline came from

pipeline template "molecule" applied via store.applyTemplate, then edited through the editor store

vectors-forces

Load forces from a file and draw them as arrows on each atom.

Fixture: caffeine_water.pdb · Tags: overlay, vectors

vectors-forces

The structure with a Load Vector -> Vectors overlay wired to the Viewport's vector channel. No arrows are drawn: the forces file is not part of the pipeline JSON, so the overlay has nothing to draw.

caution

This picture cannot grade the prompt. load_vector reads fileVectors, which is ephemeral store state a SerializedPipeline does not carry and deserialize clears, so vector_overlay emits nothing and this pipeline draws the plain structure. The product behaves the same way, so the image grades nothing. The rubric is the only check available for this case.

Nodes: add_bond, load_structure, load_trajectory, load_vector, symmetry, vector_overlay, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "caffeine_water.pdb",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "load_trajectory",
"fileName": "caffeine_water_vibration.xtc",
"id": "traj-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "add_bond",
"bondSource": "structure",
"id": "addbond-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
},
{
"type": "load_vector",
"fileName": null,
"id": "node-1",
"position": {
"x": 900,
"y": 0
},
"enabled": true
},
{
"type": "vector_overlay",
"scale": 1,
"id": "node-2",
"position": {
"x": 900,
"y": 200
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "traj-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "traj-1",
"target": "symmetry-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "addbond-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "addbond-1",
"target": "viewport-1",
"sourceHandle": "bond",
"targetHandle": "bond"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "node-1",
"target": "node-2",
"sourceHandle": "vector",
"targetHandle": "vector"
},
{
"source": "node-2",
"target": "viewport-1",
"sourceHandle": "vector",
"targetHandle": "vector"
}
]
}
Where this pipeline came from

pipeline template "molecule" applied via store.applyTemplate, then load_vector + vector_overlay added through the editor store and wired to viewport.vector

multistep-filter-bonds

Show my structure with bonds, but only the carbon atoms, and label them with their element.

Fixture: caffeine_water.pdb · Tags: multistep, filter, labels

multistep-filter-bonds

Only the caffeine's carbons, with the bonds between them, each labelled "C". Every other atom, its bonds, and its label are gone.

Nodes: add_bond, filter ×3, label_generator, load_structure, load_trajectory, modify ×2, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "caffeine_water.pdb",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "load_trajectory",
"fileName": "caffeine_water_vibration.xtc",
"source": "file",
"id": "traj-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "add_bond",
"bondSource": "structure",
"id": "addbond-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
},
{
"type": "filter",
"query": "not element == \"C\"",
"bond_query": "",
"id": "node-2",
"position": {
"x": 425,
"y": 2000
},
"enabled": true
},
{
"type": "modify",
"scale": 1,
"opacity": 0,
"id": "node-3",
"position": {
"x": 425,
"y": 2200
},
"enabled": true
},
{
"type": "filter",
"query": "",
"bond_query": "not both element == \"C\"",
"id": "node-4",
"position": {
"x": 425,
"y": 2400
},
"enabled": true
},
{
"type": "modify",
"scale": 1,
"opacity": 0,
"id": "node-5",
"position": {
"x": 425,
"y": 2600
},
"enabled": true
},
{
"type": "label_generator",
"source": "element",
"id": "node-6",
"position": {
"x": 425,
"y": 2800
},
"enabled": true
},
{
"type": "filter",
"query": "element == \"C\"",
"bond_query": "",
"id": "node-1",
"position": {
"x": 1400,
"y": 400
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "traj-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "traj-1",
"target": "symmetry-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "addbond-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "node-2",
"sourceHandle": "particle",
"targetHandle": "in"
},
{
"source": "node-2",
"target": "node-3",
"sourceHandle": "out",
"targetHandle": "in"
},
{
"source": "node-3",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "particle"
},
{
"source": "addbond-1",
"target": "node-4",
"sourceHandle": "bond",
"targetHandle": "in"
},
{
"source": "node-4",
"target": "node-5",
"sourceHandle": "out",
"targetHandle": "in"
},
{
"source": "node-5",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "bond"
},
{
"source": "node-6",
"target": "viewport-1",
"sourceHandle": "label",
"targetHandle": "label"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "node-1",
"sourceHandle": "particle",
"targetHandle": "in"
},
{
"source": "node-1",
"target": "node-6",
"sourceHandle": "out",
"targetHandle": "particle"
}
]
}
Where this pipeline came from

pipeline template "molecule" applied via store.applyTemplate, then edited through the editor store. The label branch was rebuilt afterwards: it was fed the whole particle stream, so every atom in the box was labelled "H" or "O" rather than the carbons being labelled "C". Labels, unlike the cartoon representation, do honour an upstream filter, so a filter selecting the carbons now feeds the generator.

multistep-water-transparent

I have a caffeine molecule dissolved in water, where the water residues are named HOH. Keep the caffeine fully visible, but make the water molecules semi-transparent.

Fixture: caffeine_water.pdb · Tags: multistep, filter, modify, params

multistep-water-transparent

Caffeine fully opaque; the water's atoms and its bonds both faded to 20%.

Nodes: add_bond, filter ×2, load_structure, load_trajectory, modify ×2, replicate, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "caffeine_water.pdb",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "load_trajectory",
"fileName": "caffeine_water_vibration.xtc",
"source": "file",
"id": "traj-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "replicate",
"nx": 1,
"ny": 1,
"nz": 1,
"id": "replicate-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
},
{
"type": "add_bond",
"bondSource": "structure",
"id": "addbond-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 2160
},
"enabled": true
},
{
"type": "filter",
"query": "resname == \"HOH\"",
"bond_query": "",
"id": "node-1",
"position": {
"x": 425,
"y": 2360
},
"enabled": true
},
{
"type": "modify",
"scale": 1,
"opacity": 0.2,
"id": "node-2",
"position": {
"x": 425,
"y": 2560
},
"enabled": true
},
{
"type": "filter",
"query": "",
"bond_query": "both atom_index >= 24",
"id": "node-3",
"position": {
"x": 425,
"y": 2760
},
"enabled": true
},
{
"type": "modify",
"scale": 1,
"opacity": 0.2,
"id": "node-4",
"position": {
"x": 425,
"y": 2960
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "replicate-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "loader-1",
"target": "traj-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "replicate-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "replicate-1",
"target": "addbond-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "replicate-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "replicate-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "traj-1",
"target": "symmetry-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "replicate-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "replicate-1",
"target": "viewport-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "replicate-1",
"target": "node-1",
"sourceHandle": "particle",
"targetHandle": "in"
},
{
"source": "node-1",
"target": "node-2",
"sourceHandle": "out",
"targetHandle": "in"
},
{
"source": "node-2",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "particle"
},
{
"source": "addbond-1",
"target": "node-3",
"sourceHandle": "bond",
"targetHandle": "in"
},
{
"source": "node-3",
"target": "node-4",
"sourceHandle": "out",
"targetHandle": "in"
},
{
"source": "node-4",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "bond"
}
]
}
Where this pipeline came from

tests/e2e/water-line.spec.ts construction at opacity 0.2, fresh boot, store.serialize()

representation-water-line

I have a caffeine molecule dissolved in water, where the water residues are named HOH. Render the water molecules as a line representation, but leave the caffeine in its normal style.

Fixture: caffeine_water.pdb · Tags: multistep, filter, representation, params

representation-water-line

Water drawn as thin lines, caffeine left in the default ball-and-stick style.

Nodes: add_bond, filter, load_structure, load_trajectory, replicate, representation, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "caffeine_water.pdb",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "load_trajectory",
"fileName": "",
"source": "file",
"id": "traj-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "replicate",
"nx": 1,
"ny": 1,
"nz": 1,
"id": "replicate-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
},
{
"type": "add_bond",
"bondSource": "structure",
"id": "addbond-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 2160
},
"enabled": true
},
{
"type": "filter",
"query": "resname == \"HOH\"",
"bond_query": "",
"id": "node-1",
"position": {
"x": 425,
"y": 2360
},
"enabled": true
},
{
"type": "representation",
"mode": "line",
"id": "node-2",
"position": {
"x": 425,
"y": 2560
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "replicate-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "loader-1",
"target": "traj-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "replicate-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "replicate-1",
"target": "addbond-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "replicate-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "replicate-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "addbond-1",
"target": "viewport-1",
"sourceHandle": "bond",
"targetHandle": "bond"
},
{
"source": "traj-1",
"target": "symmetry-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "replicate-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "replicate-1",
"target": "viewport-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "replicate-1",
"target": "node-1",
"sourceHandle": "particle",
"targetHandle": "in"
},
{
"source": "node-1",
"target": "node-2",
"sourceHandle": "out",
"targetHandle": "in"
},
{
"source": "node-2",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "particle"
}
]
}
Where this pipeline came from

tests/e2e/water-line.spec.ts :: water-line, fresh boot, store.serialize()

hide-water

I have a caffeine molecule dissolved in water, where the water residues are named HOH. Hide the water so only the caffeine is shown.

Fixture: caffeine_water.pdb · Tags: multistep, filter, modify, params

hide-water

Only the caffeine, in ball-and-stick — the solvent's atoms and its bonds are both gone, and the caffeine keeps its own 25 bonds.

Nodes: add_bond, filter ×2, load_structure, load_trajectory, modify ×2, replicate, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "caffeine_water.pdb",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "load_trajectory",
"fileName": "",
"source": "file",
"id": "traj-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "replicate",
"nx": 1,
"ny": 1,
"nz": 1,
"id": "replicate-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
},
{
"type": "add_bond",
"bondSource": "structure",
"id": "addbond-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 2160
},
"enabled": true
},
{
"type": "filter",
"query": "resname == \"HOH\"",
"bond_query": "",
"id": "node-1",
"position": {
"x": 425,
"y": 2360
},
"enabled": true
},
{
"type": "modify",
"scale": 1,
"opacity": 0,
"id": "node-2",
"position": {
"x": 425,
"y": 2560
},
"enabled": true
},
{
"type": "filter",
"query": "",
"bond_query": "both atom_index >= 24",
"id": "node-3",
"position": {
"x": 425,
"y": 2760
},
"enabled": true
},
{
"type": "modify",
"scale": 1,
"opacity": 0,
"id": "node-4",
"position": {
"x": 425,
"y": 2960
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "replicate-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "loader-1",
"target": "traj-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "replicate-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "replicate-1",
"target": "addbond-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "replicate-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "replicate-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "traj-1",
"target": "symmetry-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "replicate-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "replicate-1",
"target": "viewport-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "replicate-1",
"target": "node-1",
"sourceHandle": "particle",
"targetHandle": "in"
},
{
"source": "node-1",
"target": "node-2",
"sourceHandle": "out",
"targetHandle": "in"
},
{
"source": "node-2",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "particle"
},
{
"source": "addbond-1",
"target": "node-3",
"sourceHandle": "bond",
"targetHandle": "in"
},
{
"source": "node-3",
"target": "node-4",
"sourceHandle": "out",
"targetHandle": "in"
},
{
"source": "node-4",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "bond"
}
]
}
Where this pipeline came from

tests/e2e/water-line.spec.ts :: water-hidden, fresh boot, store.serialize()

molecule-basic-ja

分子を結合付きで表示してください。

Fixture: caffeine_water.pdb · Tags: molecule, multilingual

molecule-basic-ja

分子が結合付きで描画されている(molecule-basic と同じ絵)。

Nodes: add_bond, load_structure, load_trajectory, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "caffeine_water.pdb",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "load_trajectory",
"fileName": "caffeine_water_vibration.xtc",
"source": "file",
"id": "traj-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "add_bond",
"bondSource": "structure",
"id": "addbond-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "traj-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "traj-1",
"target": "symmetry-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "addbond-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "addbond-1",
"target": "viewport-1",
"sourceHandle": "bond",
"targetHandle": "bond"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
}
]
}
Where this pipeline came from

pipeline template "molecule" applied via store.applyTemplate, then edited through the editor store

filter-carbon-ja

炭素原子だけを表示して。

Fixture: caffeine_water.pdb · Tags: filter, multilingual, params

filter-carbon-ja

炭素原子とその間の結合だけが見え、他の元素は隠れている。

Nodes: add_bond, filter ×2, load_structure, load_trajectory, modify ×2, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "caffeine_water.pdb",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "load_trajectory",
"fileName": "caffeine_water_vibration.xtc",
"source": "file",
"id": "traj-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "add_bond",
"bondSource": "structure",
"id": "addbond-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
},
{
"type": "filter",
"query": "not element == \"C\"",
"bond_query": "",
"id": "node-9",
"position": {
"x": 425,
"y": 2000
},
"enabled": true
},
{
"type": "modify",
"scale": 1,
"opacity": 0,
"id": "node-10",
"position": {
"x": 425,
"y": 2200
},
"enabled": true
},
{
"type": "filter",
"query": "",
"bond_query": "not both element == \"C\"",
"id": "node-11",
"position": {
"x": 425,
"y": 2400
},
"enabled": true
},
{
"type": "modify",
"scale": 1,
"opacity": 0,
"id": "node-12",
"position": {
"x": 425,
"y": 2600
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "traj-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "traj-1",
"target": "symmetry-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "addbond-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "node-9",
"sourceHandle": "particle",
"targetHandle": "in"
},
{
"source": "node-9",
"target": "node-10",
"sourceHandle": "out",
"targetHandle": "in"
},
{
"source": "node-10",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "particle"
},
{
"source": "addbond-1",
"target": "node-11",
"sourceHandle": "bond",
"targetHandle": "in"
},
{
"source": "node-11",
"target": "node-12",
"sourceHandle": "out",
"targetHandle": "in"
},
{
"source": "node-12",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "bond"
}
]
}
Where this pipeline came from

pipeline template "molecule" applied via store.applyTemplate, then edited through the editor store

solid-supercell

Show a 2x2x2 supercell of my crystal structure.

Fixture: perovskite_srtio3_3x3x3.xyz · Tags: solid, replicate, params

solid-supercell

A 2x2x2 supercell of the crystal — eight copies of the cell contents.

caution

The runner does not assert this image. Over 3 independent boots the same pipeline produced renders differing by up to 0% of pixels: did not reproduce in every run. The pipeline is not what varies: across independent boots the store's viewport state is bit-identical (same atom count, same position checksums, same bond count, same mesh vertex and coordinate checksums) and __megane_test.getCameraState() returns the same position, target and zoom to the last float — but that API does not report the orthographic frustum, and the framing is what differs. Clicking Reset View changes neither mode (before and after are byte-identical), so the fit is settled by the time it runs. The split is by fixture: every case on caffeine_water.pdb reproduced in every run made, and every case on another fixture differed in at least one — including cases whose three-boot sample agreed, which is why agreement alone is not treated as evidence here (crystal-distance-bonds reproduced three times and then differed by 6.9% on the next render).

Nodes: coordination_generator, drawing_boundary, load_structure, polyhedron_generator, replicate, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "perovskite_srtio3_3x3x3.xyz",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "drawing_boundary",
"xMin": 0,
"xMax": 1,
"yMin": 0,
"yMax": 1,
"zMin": 0,
"zMax": 1,
"id": "drawing-boundary-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "coordination_generator",
"excludedCenters": [],
"excludedLigands": [],
"cutoffTolerance": 1.15,
"boundaryMode": "complete",
"id": "coordination-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
},
{
"type": "polyhedron_generator",
"opacity": 0.5,
"showEdges": false,
"edgeColor": "#dddddd",
"edgeWidth": 3,
"id": "polyhedron-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 2160
},
"enabled": true
},
{
"type": "replicate",
"nx": 2,
"ny": 2,
"nz": 2,
"id": "node-9",
"position": {
"x": 425,
"y": 2360
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "drawing-boundary-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "drawing-boundary-1",
"target": "coordination-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "coordination-1",
"target": "viewport-1",
"sourceHandle": "bond",
"targetHandle": "bond"
},
{
"source": "coordination-1",
"target": "polyhedron-1",
"sourceHandle": "coordination",
"targetHandle": "coordination"
},
{
"source": "polyhedron-1",
"target": "viewport-1",
"sourceHandle": "mesh",
"targetHandle": "mesh"
},
{
"source": "drawing-boundary-1",
"target": "node-9",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "node-9",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
}
]
}
Where this pipeline came from

pipeline template "solid" applied via store.applyTemplate, then edited through the editor store; replicate 2x2x2

color-by-element

Color the atoms by their element.

Fixture: caffeine_water.pdb · Tags: color, params

color-by-element

Atoms coloured by element (megane's default CPK palette).

Nodes: add_bond, color, load_structure, load_trajectory, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "caffeine_water.pdb",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "load_trajectory",
"fileName": "caffeine_water_vibration.xtc",
"source": "file",
"id": "traj-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "add_bond",
"bondSource": "structure",
"id": "addbond-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 1800
},
"enabled": true
},
{
"type": "color",
"mode": "byElement",
"uniformColor": "#ff8800",
"id": "node-3",
"position": {
"x": 425,
"y": 2000
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "traj-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "traj-1",
"target": "symmetry-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "addbond-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "addbond-1",
"target": "viewport-1",
"sourceHandle": "bond",
"targetHandle": "bond"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "trajectory",
"targetHandle": "trajectory"
},
{
"source": "wrap-1",
"target": "node-3",
"sourceHandle": "particle",
"targetHandle": "in"
},
{
"source": "node-3",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "particle"
}
]
}
Where this pipeline came from

pipeline template "molecule" applied via store.applyTemplate, then edited through the editor store

representation-cartoon

Show my protein as a cartoon.

Fixture: 1ubq.pdb · Tags: representation, params

representation-cartoon

The protein drawn as a cartoon ribbon.

caution

The runner does not assert this image. Over 3 independent boots the same pipeline produced renders differing by up to 19.1891% of pixels: did not reproduce in every run. The pipeline is not what varies: across independent boots the store's viewport state is bit-identical (same atom count, same position checksums, same bond count, same mesh vertex and coordinate checksums) and __megane_test.getCameraState() returns the same position, target and zoom to the last float — but that API does not report the orthographic frustum, and the framing is what differs. Clicking Reset View changes neither mode (before and after are byte-identical), so the fit is settled by the time it runs. The split is by fixture: every case on caffeine_water.pdb reproduced in every run made, and every case on another fixture differed in at least one — including cases whose three-boot sample agreed, which is why agreement alone is not treated as evidence here (crystal-distance-bonds reproduced three times and then differed by 6.9% on the next render).

Nodes: filter ×2, load_structure, modify ×2, representation, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "1ubq.pdb",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "filter",
"query": "resname != \"HOH\"",
"id": "protein-filter",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "modify",
"scale": 1,
"opacity": 0,
"id": "protein-modify",
"position": {
"x": 15,
"y": 1440
},
"enabled": true
},
{
"type": "representation",
"mode": "both",
"id": "protein-rep",
"position": {
"x": 15,
"y": 1800
},
"enabled": true
},
{
"type": "filter",
"query": "resname == \"HOH\"",
"id": "water-filter",
"position": {
"x": -395,
"y": 1440
},
"enabled": true
},
{
"type": "modify",
"scale": 1,
"opacity": 0.5,
"id": "water-modify",
"position": {
"x": -395,
"y": 1800
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 2160
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "protein-filter",
"sourceHandle": "particle",
"targetHandle": "in"
},
{
"source": "protein-filter",
"target": "protein-modify",
"sourceHandle": "out",
"targetHandle": "in"
},
{
"source": "protein-modify",
"target": "protein-rep",
"sourceHandle": "out",
"targetHandle": "in"
},
{
"source": "protein-rep",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "water-filter",
"sourceHandle": "particle",
"targetHandle": "in"
},
{
"source": "water-filter",
"target": "water-modify",
"sourceHandle": "out",
"targetHandle": "in"
},
{
"source": "water-modify",
"target": "viewport-1",
"sourceHandle": "out",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
}
]
}
Where this pipeline came from

pipeline template "protein" applied via store.applyTemplate, then edited through the editor store

surface-molecular

Show the molecular surface of my structure.

Fixture: quartz_sio2_2x2x2.xyz · Tags: surface_mesh

surface-molecular

The structure wrapped in a molecular surface mesh.

caution

The runner does not assert this image. Over 3 independent boots the same pipeline produced renders differing by up to 15.2454% of pixels: did not reproduce in every run. The pipeline is not what varies: across independent boots the store's viewport state is bit-identical (same atom count, same position checksums, same bond count, same mesh vertex and coordinate checksums) and __megane_test.getCameraState() returns the same position, target and zoom to the last float — but that API does not report the orthographic frustum, and the framing is what differs. Clicking Reset View changes neither mode (before and after are byte-identical), so the fit is settled by the time it runs. The split is by fixture: every case on caffeine_water.pdb reproduced in every run made, and every case on another fixture differed in at least one — including cases whose three-boot sample agreed, which is why agreement alone is not treated as evidence here (crystal-distance-bonds reproduced three times and then differed by 6.9% on the next render).

Nodes: load_structure, surface_mesh, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "quartz_sio2_2x2x2.xyz",
"hasTrajectory": false,
"hasCell": true,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -190,
"y": 720
},
"enabled": true
},
{
"type": "surface_mesh",
"alphaRadius": 3,
"color": "#4488ff",
"opacity": 0.5,
"id": "surface-1",
"position": {
"x": -190,
"y": 1080
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "surface-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "loader-1",
"target": "viewport-1",
"sourceHandle": "cell",
"targetHandle": "cell"
},
{
"source": "surface-1",
"target": "viewport-1",
"sourceHandle": "mesh",
"targetHandle": "mesh"
}
]
}
Where this pipeline came from

pipeline template "surface_mesh" applied via store.applyTemplate, then edited through the editor store

volumetric-isosurface

Load a cube file and render its isosurface.

Fixture: caffeine.sdf · Tags: volumetric, isosurface

volumetric-isosurface

Caffeine with its 25 bonds. The isosurface is absent: the cube file's grid is not part of the pipeline JSON, so Load Volumetric and Isosurface both report having no input.

caution

This picture cannot grade the prompt. load_volumetric reads the parsed cube grid, which is ephemeral store state a SerializedPipeline does not carry and deserialize clears. After the round trip the node reports "No volumetric data loaded" and isosurface reports "No volumetric input", so the mesh is empty and the picture is the molecule alone — the same as any pipeline without an isosurface at all. The product drops the grid the same way, so no pipeline can draw a different picture for this prompt. The rubric is the only check available for this case.

caution

The runner does not assert this image. Over 3 independent boots the same pipeline produced renders differing by up to 9.0324% of pixels: did not reproduce in every run. The pipeline is not what varies: across independent boots the store's viewport state is bit-identical (same atom count, same position checksums, same bond count, same mesh vertex and coordinate checksums) and __megane_test.getCameraState() returns the same position, target and zoom to the last float — but that API does not report the orthographic frustum, and the framing is what differs. Clicking Reset View changes neither mode (before and after are byte-identical), so the fit is settled by the time it runs. The split is by fixture: every case on caffeine_water.pdb reproduced in every run made, and every case on another fixture differed in at least one — including cases whose three-boot sample agreed, which is why agreement alone is not treated as evidence here (crystal-distance-bonds reproduced three times and then differed by 6.9% on the next render).

Nodes: add_bond, isosurface, load_structure, load_volumetric, symmetry, viewport, wrap

Reference pipeline (pipeline.megane.json)
{
"version": 3,
"nodes": [
{
"type": "load_structure",
"fileName": "caffeine.sdf",
"hasTrajectory": false,
"hasCell": false,
"id": "loader-1",
"position": {
"x": -190,
"y": 0
},
"enabled": true
},
{
"type": "symmetry",
"mode": "expand",
"id": "symmetry-1",
"position": {
"x": -190,
"y": 360
},
"enabled": true
},
{
"type": "wrap",
"mode": "none",
"id": "wrap-1",
"position": {
"x": -395,
"y": 720
},
"enabled": true
},
{
"type": "add_bond",
"bondSource": "structure",
"id": "addbond-1",
"position": {
"x": -395,
"y": 1080
},
"enabled": true
},
{
"type": "load_volumetric",
"fileName": "caffeine_esp.cube",
"id": "volumetric-1",
"position": {
"x": 15,
"y": 720
},
"enabled": true
},
{
"type": "isosurface",
"isoLevel": 0.03,
"color": "#3b82f6",
"opacity": 0.55,
"showNegative": true,
"negativeColor": "#ef4444",
"colorMode": "solid",
"colormap": "rwb",
"id": "isosurface-1",
"position": {
"x": 15,
"y": 1080
},
"enabled": true
},
{
"type": "viewport",
"perspective": false,
"cellAxesVisible": true,
"pivotMarkerVisible": true,
"id": "viewport-1",
"position": {
"x": -190,
"y": 1440
},
"enabled": true
}
],
"edges": [
{
"source": "loader-1",
"target": "symmetry-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "symmetry-1",
"target": "wrap-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "addbond-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "wrap-1",
"target": "viewport-1",
"sourceHandle": "particle",
"targetHandle": "particle"
},
{
"source": "addbond-1",
"target": "viewport-1",
"sourceHandle": "bond",
"targetHandle": "bond"
},
{
"source": "volumetric-1",
"target": "isosurface-1",
"sourceHandle": "volumetric",
"targetHandle": "volumetric"
},
{
"source": "isosurface-1",
"target": "viewport-1",
"sourceHandle": "mesh",
"targetHandle": "mesh"
}
]
}
Where this pipeline came from

pipeline template "esp" applied via store.applyTemplate, then edited through the editor store