Opened 5 months ago

Closed 4 months ago

#18016 closed defect (fixed)

crossfade: images do not match

Reported by: jgrime@… Owned by: Tom Goddard
Priority: normal Milestone:
Component: Depiction Version:
Keywords: Cc: Eric Pettersen
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        macOS-15.5-arm64-arm-64bit
ChimeraX Version: 1.10rc202506130232 (2025-06-13 02:32:35 UTC)
Description
Move making examples on the following page:

https://www.cgl.ucsf.edu/chimera/data/movie-howto-mar2012/movie_examples.html

... do not seem to work, and in fact lead ro tuntime crashes in ChimeraX.

For example, the "movie crossfade" script under "Visibility" causes ChimeraX to print the following error message along with a popup dialog complaining about a Python exception:

Unknown command: repr sphere
Traceback (most recent call last):
  File "/Applications/ChimeraX-1.10-rc2025.06.17.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/chimerax/core/triggerset.py", line 149, in invoke
    return self._func(self._name, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Applications/ChimeraX-1.10-rc2025.06.17.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/chimerax/movie/movie.py", line 181, in capture_image
    self.save_crossfade_images()
  File "/Applications/ChimeraX-1.10-rc2025.06.17.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/chimerax/movie/movie.py", line 210, in save_crossfade_images
    imagef = Image.blend(image1, image2, float(f)/(frames-1))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Applications/ChimeraX-1.10-rc2025.06.17.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/PIL/Image.py", line 3540, in blend
    return im1._new(core.blend(im1.im, im2.im, alpha))
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: images do not match


Error processing trigger "frame drawn":
ValueError: images do not match


File "/Applications/ChimeraX-1.10-rc2025.06.17.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/PIL/Image.py", line 3540, in blend
return im1._new(core.blend(im1.im, im2.im, alpha))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


See log for complete Python traceback.



Log:
> runscript test2.cxc

> open pubchem:5988

PubChem entry 5988: Sucrose  
  

> scalebar 1.2

> set bgColor white

> windowsize 200 150

> movie record supersample 3

> wait 10

> movie crossfade 50

> repr sphere

Unknown command: repr sphere  
Traceback (most recent call last):  
File
"/Applications/ChimeraX-1.10-rc2025.06.17.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/core/triggerset.py", line 149, in invoke  
return self._func(self._name, data)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File
"/Applications/ChimeraX-1.10-rc2025.06.17.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/movie/movie.py", line 181, in capture_image  
self.save_crossfade_images()  
File
"/Applications/ChimeraX-1.10-rc2025.06.17.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/movie/movie.py", line 210, in save_crossfade_images  
imagef = Image.blend(image1, image2, float(f)/(frames-1))  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File
"/Applications/ChimeraX-1.10-rc2025.06.17.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/PIL/Image.py", line 3540, in blend  
return im1._new(core.blend(im1.im, im2.im, alpha))  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
ValueError: images do not match  
  
Error processing trigger "frame drawn":  
ValueError: images do not match  
  
File
"/Applications/ChimeraX-1.10-rc2025.06.17.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/PIL/Image.py", line 3540, in blend  
return im1._new(core.blend(im1.im, im2.im, alpha))  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
  
See log for complete Python traceback.  
  




OpenGL version: 4.1 Metal - 89.4
OpenGL renderer: Apple M3 Pro
OpenGL vendor: Apple

Python: 3.11.4
Locale: en_US.UTF-8
Qt version: PyQt6 6.8.1, Qt 6.8.2
Qt runtime version: 6.8.2
Qt platform: cocoa
Hardware:

    Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: Mac15,7
      Model Number: MRW43LL/A
      Chip: Apple M3 Pro
      Total Number of Cores: 12 (6 performance and 6 efficiency)
      Memory: 18 GB
      System Firmware Version: 11881.121.1
      OS Loader Version: 11881.121.1

Software:

    System Software Overview:

      System Version: macOS 15.5 (24F74)
      Kernel Version: Darwin 24.5.0
      Time since boot: 20 days, 9 hours, 24 minutes

Graphics/Displays:

    Apple M3 Pro:

      Chipset Model: Apple M3 Pro
      Type: GPU
      Bus: Built-In
      Total Number of Cores: 18
      Vendor: Apple (0x106b)
      Metal Support: Metal 3
      Displays:
        Color LCD:
          Display Type: Built-in Liquid Retina XDR Display
          Resolution: 3456 x 2234 Retina
          Main Display: Yes
          Mirror: Off
          Online: Yes
          Automatically Adjust Brightness: Yes
          Connection Type: Internal


Installed Packages:
    alabaster: 1.0.0
    appdirs: 1.4.4
    appnope: 0.1.4
    asttokens: 3.0.0
    auditwheel: 6.4.0
    babel: 2.17.0
    beautifulsoup4: 4.13.3
    blockdiag: 3.0.0
    blosc2: 3.4.0
    build: 1.2.2.post1
    certifi: 2023.11.17
    cftime: 1.6.4.post1
    charset-normalizer: 3.4.2
    ChimeraX-AddCharge: 1.5.19
    ChimeraX-AddH: 2.2.7
    ChimeraX-AlignmentAlgorithms: 2.0.2
    ChimeraX-AlignmentHdrs: 3.6.1
    ChimeraX-AlignmentMatrices: 2.1
    ChimeraX-Alignments: 2.20.2
    ChimeraX-AlphaFold: 1.0.1
    ChimeraX-AltlocExplorer: 1.1.2
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Aniso: 1.1.4
    ChimeraX-Arrays: 1.1
    ChimeraX-Atomic: 1.60.7
    ChimeraX-AtomicLibrary: 14.1.18
    ChimeraX-AtomSearch: 2.0.1
    ChimeraX-AxesPlanes: 2.4
    ChimeraX-BasicActions: 1.1.3
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 3.0.0
    ChimeraX-Boltz: 1.0
    ChimeraX-BondRot: 2.0.4
    ChimeraX-BugReporter: 1.0.2
    ChimeraX-BuildStructure: 2.13.1
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.5.1
    ChimeraX-ButtonPanel: 1.0.1
    ChimeraX-CageBuilder: 1.0.1
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.4
    ChimeraX-ChangeChains: 1.1
    ChimeraX-CheckWaters: 1.5
    ChimeraX-ChemGroup: 2.0.2
    ChimeraX-Clashes: 2.3
    ChimeraX-ColorActions: 1.0.5
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.5.8
    ChimeraX-CommandLine: 1.3
    ChimeraX-ConnectStructure: 2.0.1
    ChimeraX-Contacts: 1.0.1
    ChimeraX-Core: 1.10rc202506130232
    ChimeraX-CoreFormats: 1.2
    ChimeraX-coulombic: 1.4.5
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-CrystalContacts: 1.0.1
    ChimeraX-DataFormats: 1.2.4
    ChimeraX-Dicom: 1.2.7
    ChimeraX-DistMonitor: 1.4.2
    ChimeraX-DockPrep: 1.1.4
    ChimeraX-Dssp: 2.0
    ChimeraX-EMDB-SFF: 1.0
    ChimeraX-ESMFold: 1.0
    ChimeraX-FileHistory: 1.0.1
    ChimeraX-FunctionKey: 1.0.1
    ChimeraX-Geometry: 1.3
    ChimeraX-gltf: 1.0
    ChimeraX-Graphics: 1.4.1
    ChimeraX-Hbonds: 2.5.1
    ChimeraX-Help: 1.3
    ChimeraX-HKCage: 1.3
    ChimeraX-IHM: 1.1
    ChimeraX-ImageFormats: 1.2
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0.3
    ChimeraX-ItemsInspection: 1.0.1
    ChimeraX-IUPAC: 1.0
    ChimeraX-KVFinder: 1.6.2
    ChimeraX-Label: 1.1.14
    ChimeraX-ListInfo: 1.2.2
    ChimeraX-Log: 1.2
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.9.1
    ChimeraX-Map: 1.3
    ChimeraX-MapData: 2.0
    ChimeraX-MapEraser: 1.0.1
    ChimeraX-MapFilter: 2.0.1
    ChimeraX-MapFit: 2.0
    ChimeraX-MapSeries: 2.1.1
    ChimeraX-Markers: 1.0.1
    ChimeraX-Mask: 1.0.2
    ChimeraX-MatchMaker: 2.2.2
    ChimeraX-MCopy: 1.0
    ChimeraX-MDcrds: 2.10.1
    ChimeraX-MedicalToolbar: 1.1
    ChimeraX-Meeting: 1.0.1
    ChimeraX-MLP: 1.1.1
    ChimeraX-mmCIF: 2.16
    ChimeraX-MMTF: 2.2
    ChimeraX-ModelArchive: 1.0
    ChimeraX-Modeller: 1.5.19
    ChimeraX-ModelPanel: 1.5.1
    ChimeraX-ModelSeries: 1.0.1
    ChimeraX-Mol2: 2.0.3
    ChimeraX-Mole: 1.0
    ChimeraX-Morph: 1.0.2
    ChimeraX-MouseModes: 1.2
    ChimeraX-Movie: 1.0
    ChimeraX-MutationScores: 1.0
    ChimeraX-Neuron: 1.0
    ChimeraX-Nifti: 1.2
    ChimeraX-NMRSTAR: 1.0.2
    ChimeraX-NRRD: 1.2
    ChimeraX-Nucleotides: 2.0.3
    ChimeraX-OpenCommand: 1.14.1
    ChimeraX-OrthoPick: 1.0.1
    ChimeraX-PDB: 2.7.10
    ChimeraX-PDBBio: 1.0.1
    ChimeraX-PDBLibrary: 1.0.4
    ChimeraX-PDBMatrices: 1.0
    ChimeraX-PickBlobs: 1.0.1
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.1.3
    ChimeraX-ProfileGrids: 1.1.2
    ChimeraX-PubChem: 2.2
    ChimeraX-ReadPbonds: 1.0.1
    ChimeraX-Registration: 1.1.2
    ChimeraX-RemoteControl: 1.0
    ChimeraX-RenderByAttr: 1.6.3
    ChimeraX-RenumberResidues: 1.1
    ChimeraX-ResidueFit: 1.0.1
    ChimeraX-RestServer: 1.3.1
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 4.0
    ChimeraX-RotamerLibsDunbrack: 2.0
    ChimeraX-RotamerLibsDynameomics: 2.0
    ChimeraX-RotamerLibsRichardson: 2.0
    ChimeraX-SaveCommand: 1.5.1
    ChimeraX-SchemeMgr: 1.0
    ChimeraX-SDF: 2.0.3
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0.1
    ChimeraX-Segmentations: 3.5.7
    ChimeraX-SelInspector: 1.0
    ChimeraX-SeqView: 2.17.1
    ChimeraX-Shape: 1.1
    ChimeraX-Shell: 1.0.1
    ChimeraX-Shortcuts: 1.2.1
    ChimeraX-ShowSequences: 1.0.3
    ChimeraX-SideView: 1.0.1
    ChimeraX-SimilarStructures: 1.0.1
    ChimeraX-Smiles: 2.1.2
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.19.1
    ChimeraX-STL: 1.0.1
    ChimeraX-Storm: 1.0
    ChimeraX-StructMeasure: 1.2.1
    ChimeraX-Struts: 1.0.1
    ChimeraX-Surface: 1.0.1
    ChimeraX-SwapAA: 2.0.1
    ChimeraX-SwapRes: 2.5.2
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-TaskManager: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.2.3
    ChimeraX-ToolshedUtils: 1.2.4
    ChimeraX-Topography: 1.0
    ChimeraX-ToQuest: 1.0
    ChimeraX-Tug: 1.0.1
    ChimeraX-UI: 1.45.1
    ChimeraX-Umap: 1.0
    ChimeraX-uniprot: 2.3.1
    ChimeraX-UnitCell: 1.0.1
    ChimeraX-ViewDockX: 1.4.4
    ChimeraX-VIPERdb: 1.0
    ChimeraX-Vive: 1.1
    ChimeraX-VolumeMenu: 1.0.1
    ChimeraX-vrml: 1.0
    ChimeraX-VTK: 1.0
    ChimeraX-WavefrontOBJ: 1.0
    ChimeraX-WebCam: 1.0.2
    ChimeraX-WebServices: 1.1.5
    ChimeraX-Zone: 1.0.1
    colorama: 0.4.6
    comm: 0.2.2
    contourpy: 1.3.2
    coverage: 7.9.1
    cxservices: 1.2.3
    cycler: 0.12.1
    Cython: 3.0.12
    debugpy: 1.8.14
    decorator: 5.2.1
    docutils: 0.21.2
    executing: 2.2.0
    filelock: 3.18.0
    fonttools: 4.58.4
    funcparserlib: 2.0.0a0
    glfw: 2.9.0
    grako: 3.16.5
    h5py: 3.14.0
    html2text: 2024.2.26
    idna: 3.10
    ihm: 2.2
    imagecodecs: 2024.6.1
    imagesize: 1.4.1
    iniconfig: 2.1.0
    ipykernel: 6.29.5
    ipython: 8.26.0
    ipywidgets: 8.1.7
    jedi: 0.19.1
    Jinja2: 3.1.6
    jupyter_client: 8.6.3
    jupyter_core: 5.8.1
    jupyterlab_widgets: 3.0.15
    kiwisolver: 1.4.8
    line_profiler: 4.2.0
    lxml: 5.3.1
    lz4: 4.4.4
    MarkupSafe: 3.0.2
    matplotlib: 3.10.1
    matplotlib-inline: 0.1.7
    msgpack: 1.1.0
    ndindex: 1.10.0
    nest-asyncio: 1.6.0
    netCDF4: 1.6.5
    networkx: 3.3
    nibabel: 5.2.0
    nptyping: 2.5.0
    numexpr: 2.11.0
    numpy: 1.26.4
    OpenMM: 8.2.0
    openvr: 1.26.701
    packaging: 24.2
    ParmEd: 4.2.2
    parso: 0.8.4
    pep517: 0.13.1
    pexpect: 4.9.0
    pickleshare: 0.7.5
    pillow: 10.4.0
    pip: 25.0.1
    pkginfo: 1.11.1
    platformdirs: 4.3.8
    pluggy: 1.6.0
    prompt_toolkit: 3.0.51
    psutil: 7.0.0
    ptyprocess: 0.7.0
    pure_eval: 0.2.3
    py-cpuinfo: 9.0.0
    pycollada: 0.8
    pydicom: 2.4.4
    pyelftools: 0.32
    Pygments: 2.18.0
    pynmrstar: 3.3.5
    pynrrd: 1.0.0
    PyOpenGL: 3.1.9
    PyOpenGL-accelerate: 3.1.9
    pyopenxr: 1.1.4501
    pyparsing: 3.2.3
    pyproject_hooks: 1.2.0
    PyQt6-commercial: 6.8.1
    PyQt6-Qt6: 6.8.2
    PyQt6-WebEngine-commercial: 6.8.0
    PyQt6-WebEngine-Qt6: 6.8.2
    PyQt6_sip: 13.10.0
    pytest: 8.4.0
    pytest-cov: 6.2.1
    python-dateutil: 2.9.0.post0
    pytz: 2025.2
    pyzmq: 27.0.0
    qtconsole: 5.5.2
    QtPy: 2.4.3
    qtshim: 1.1
    RandomWords: 0.4.0
    requests: 2.32.3
    roman-numerals-py: 3.1.0
    scipy: 1.14.0
    setuptools: 78.1.0
    sfftk-rw: 0.8.1
    six: 1.16.0
    snowballstemmer: 3.0.1
    sortedcontainers: 2.4.0
    soupsieve: 2.7
    Sphinx: 8.2.3
    sphinx-autodoc-typehints: 3.1.0
    sphinxcontrib-applehelp: 2.0.0
    sphinxcontrib-blockdiag: 3.0.0
    sphinxcontrib-devhelp: 2.0.0
    sphinxcontrib-htmlhelp: 2.1.0
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 2.0.0
    sphinxcontrib-serializinghtml: 2.0.0
    stack-data: 0.6.3
    superqt: 0.7.1
    tables: 3.10.2
    tcia_utils: 1.5.1
    tifffile: 2025.3.13
    tinyarray: 1.2.4
    tornado: 6.5.1
    traitlets: 5.14.3
    typing_extensions: 4.14.0
    tzdata: 2025.2
    urllib3: 2.4.0
    wcwidth: 0.2.13
    webcolors: 24.11.1
    wheel: 0.45.1
    wheel-filename: 1.4.2
    widgetsnbextension: 4.0.14
File attachment: Screenshot 2025-06-17 at 6.07.52 PM.png

Screenshot 2025-06-17 at 6.07.52 PM.png

Attachments (1)

Screenshot 2025-06-17 at 6.07.52 PM.png (888.7 KB ) - added by jgrime@… 5 months ago.
Added by email2trac

Download all attachments as: .zip

Change History (4)

by jgrime@…, 5 months ago

Added by email2trac

comment:1 by Eric Pettersen, 5 months ago

Cc: Eric Pettersen added
Component: UnassignedDepiction
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissioncrossfade: images do not match

Hi John,

Chimera and ChimeraX are separate programs with different (though similar) command languages. That page has movie examples for Chimera, not ChimeraX, and we would not expect those scripts to work in ChimeraX. Nonetheless, they should not produce a traceback like you got, so we will fix that.
Here are a few web pages with examples of making movies in ChimeraX:

https://kpwulab.com/2022/03/05/chimerax-make-movies/
https://www.youtube.com/watch?v=8SBd9_JkgLE
https://www.rbvi.ucsf.edu/chimerax/data/movies-may2019/moviemaking.html

--Eric

Eric Pettersen
UCSF Computer Graphics Lab

comment:2 by John.Grime@…, 5 months ago

Thanks, Eric!

J.

Last edited 4 months ago by Tom Goddard (previous) (diff)

comment:3 by Tom Goddard, 4 months ago

Resolution: fixed
Status: assignedclosed

Fixed.

This error occurs when resizing the ChimeraX main window while a movie is being recorded using the window size. That saves movie frames of different sizes that cannot be made into a movie. The movie crossfade command threw an error trying to blend frames of different sizes. I've added a check to the code that gives a clear error message if you try a movie crossfade and then resize the window.

Note: See TracTickets for help on using tickets.