Opened 5 years ago

Closed 5 years ago

#3560 closed enhancement (fixed)

figure 8 camera motion

Reported by: Tristan Croll Owned by: Tom Goddard
Priority: normal Milestone:
Component: General Controls Version:
Keywords: Cc: Elaine Meng
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Linux-3.10.0-1127.13.1.el7.x86_64-x86_64-with-centos-7.8.2003-Core
ChimeraX Version: 1.0 (2020-06-04 23:15:07 UTC)
Description
Would be good to have a command ("rock", perhaps) that sets the camera following a smallish figure-8 in space while always pointing at a fixed center of rotation. It's implemented in PyMol as "nutate" and VMD as "Rock and Roll (XY Lemniscate)". Something I really liked using back in my VMD days - it's really useful for creating short looping videos that give a good idea of 3D depth while remaining focused on whatever it is you want to show. 

Log:
UCSF ChimeraX version: 1.0 (2020-06-04)  
© 2016-2020 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> help help:user




OpenGL version: 3.3.0 NVIDIA 450.51.05
OpenGL renderer: TITAN Xp/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Manufacturer: Dell Inc.
Model: Precision T5600
OS: CentOS Linux 7 Core
Architecture: 64bit ELF
CPU: 32 Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz
Cache Size: 20480 KB
Memory:
	              total        used        free      shared  buff/cache   available
	Mem:            62G        4.9G         49G        304M        8.8G         57G
	Swap:          4.9G          0B        4.9G

Graphics:
	03:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102 [TITAN Xp] [10de:1b02] (rev a1)	
	Subsystem: NVIDIA Corporation Device [10de:11df]	
	Kernel driver in use: nvidia
PyQt version: 5.12.3
Compiled Qt version: 5.12.4
Runtime Qt version: 5.12.8

Attachments (1)

vmd_lemniscate.mp4 (2.2 MB ) - added by Tristan Croll 5 years ago.
Added by email2trac

Change History (19)

in reply to:  1 ; comment:1 by Tristan Croll, 5 years ago

In other words, the same effect as if in rotate mouse mode you drag the 
mouse in a horizontal figure-8.

On 2020-07-29 15:01, ChimeraX wrote:

comment:2 by Eric Pettersen, 5 years ago

Component: UnassignedGeneral Controls
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionfigure 8 camera motion
Type: defectenhancement

comment:3 by Tom Goddard, 5 years ago

Cc: Elaine Meng added

I added the rock command to ChimeraX. Chimera had the "rock" command which just rocks about the y-axis (not a figure 8 motion). This can be done in ChimeraX with the turn command using its rock option (e.g turn y 15 rock 136) but it is simpler to have a rock command with sensible defaults.

I find the figure 8 motion a bit nauseating. But if you think it is popular I can add that. I thought I had that in Chimera 1 but I can't find it.

in reply to:  4 ; comment:4 by Tristan Croll, 5 years ago

I've used the figure-8 motion a few times in conference presentations, 
and had positive comments about it afterwards. The trick is to keep it 
reasonably slow and subtle - just enough to give 3D depth perception, 
without getting confusing.

On 2020-07-29 18:24, ChimeraX wrote:

in reply to:  5 ; comment:5 by Elaine Meng, 5 years ago

There was a "precessionTilt" option to the "roll" command in Chimera that did something strange and possibly similar.

in reply to:  6 ; comment:6 by goddard@…, 5 years ago

Thanks.  I just tried Chimera presessionTilt for a minute and I am already seasick.  The movie on the animation gallery mercifully slows it down but still is unpleasant.

http://www.rbvi.ucsf.edu/chimera/animations/animations.html#wobble


in reply to:  7 ; comment:7 by Tristan Croll, 5 years ago

It's most useful when zoomed right in and centered on a feature of 
interest, like this (had to fudge with a screen capture since VMD's 
movie maker relies on ppmtompeg, which only seems to be available from 
yum in CentOS 6)...

On 2020-07-29 18:44, ChimeraX wrote:

vmd_lemniscate.mp4

by Tristan Croll, 5 years ago

Attachment: vmd_lemniscate.mp4 added

Added by email2trac

comment:8 by Tom Goddard, 5 years ago

Yes, that is how I tested the Chimera precession option, zoomed in close on a bound ligand. I'd like to encourage people to use the simpler side-to-side rock because it is more comfortable to look at. Maybe I am overly sensitive, but I never have been seasick and seem highly resistant to VR sickness. But I can definitely feel my brain not wanting to look at these figure 8 motions. By the way, I saw movies where you figure 8 by hand on Twitter earlier this week and I meant to say something to you since I just want to scroll by those movies when I see them due to the discomfort.

Still if you think my reaction is unusual, I am ok putting some wobbly mode in.

in reply to:  10 comment:9 by Tristan Croll, 5 years ago

Yes, I know those videos aren't really perfect - they're captured 
on-the-fly from interactive sessions, and I put the motion in as much as 
anything just to update the display so the movie recorder will capture 
frames. They're usually quite off-the-cuff, and I have so many different 
things on my plate right now that I just don't have the time to do 
anything more elegant. I think some people do seem to appreciate the 
"raw" feel of them... but it might be nice to have an "interactive mode" 
movie record that aims to capture a fixed number of frames per second to 
reduce the need for this sort of motion?

On 2020-07-29 19:22, ChimeraX wrote:

in reply to:  11 ; comment:10 by Elaine Meng, 5 years ago

I personally never liked the precession option either, but I can't even watch Imax movies without feeling ill.  Somebody outside our group suggested it, I forget who, perhaps because Pymol or some other program had a similar option.

comment:11 by Eric Pettersen, 5 years ago

Well, I can see Tristan's use case of a short Twitter video trying to smoothly show the features of a complicated site with density, including above and below.

in reply to:  13 comment:12 by goddard@…, 5 years ago

I think raw videos are good videos.  But I think videos should not make the viewer queasy.  In Hollywood movies the camera is often still or makes instant cuts.  Science videos really abuse the fly-throughs, zooms, continuous motions of all kinds.  We need some of that for sure.

We had interactive mode movie record in Chimera -- seemed to be rarely used.  But I agree there are cases.  Make a separate ticket if you want that.  You can do it now, there just isn't a button you can press to record and press again to stop.  I am not sure what you have in mind with fixed number of frames per second -- if the rendering is fast enough you can currently set the maximum frame rate (with "graphics rate" command) to something slower than 60.  Saving images to disk can be the slow part.

in reply to:  14 ; comment:13 by Tristan Croll, 5 years ago

What I mean is that the movie record currently only writes a frame when the display actually changes, so (a) if you’re not actively doing anything, nothing gets added to the video, and (b) when you *are* doing things, the resulting video comes out much faster than real life. Having a mode that aims to be more like, say, Twitch - that is, a real-time capture making the playback the same speed as the recording speed - would have its uses. But agreed, that’s something that would be better on another ticket.


in reply to:  15 ; comment:14 by Tristan Croll, 5 years ago

... but to be honest, would possibly be a bit superfluous. In Windows, the built in Xbox Live game capture does a fantastic job. Haven’t found as good a solution in Linux - the built in Gnome screencast tends to start dropping frames after a minute or so.


in reply to:  16 ; comment:15 by goddard@…, 5 years ago

Ok, to get frames to be continuously drawn even when nothing is changing so the movie will record those unchanging frames you can use command "graphics rate on" before recording.

in reply to:  17 ; comment:16 by goddard@…, 5 years ago

ChimeraX movie recording is of course not heavily optimized to avoid frame drops.  That requires serious work and is what decent screen capture software does, like shuttling the frames to disk in a separate thread so they don't slow down the capture.  Best to use a separate screen capture program if you want a good result.

comment:17 by Tom Goddard, 5 years ago

Fengwei Zheng also requested this feature.

Begin forwarded message:

From: "Zheng, Fengwei" <Fengwei.Zheng@…>
Subject: [Chimera-users] The command like volume zone in X
Date: August 14, 2020 at 8:43:30 AM PDT
To: "chimera-users@…" <chimera-users@…>

Dear Developer,

...
Another thing is that I wonder if there is a command of ChimeraX can achieve the same function like "turn z 2 360 precess 20" in Chimera (to achieve the Wobble motion / "wiggle-rock" motion, like nutation in pymol)~
The I tried 1.14, 1.15 and the latest daily built versions of Chimera.
The ChimeraX version I used is 1.0, Many thanks!

Best,

Fengwei

comment:18 by Tom Goddard, 5 years ago

Resolution: fixed
Status: assignedclosed

Implemented wobble command that does figure 8 motion.

The wobble command like the rock command is a shorthand for the turn command. Wobble uses two new turn command options "wobble" and "wobbleAspect". The wobble option sets the cycle number of frames for one complete figure 8. The wobbleAspect (default 0.3) is the ration of the wobble angle amplitude to the rocking angle amplitude.

Note: See TracTickets for help on using tickets.