menpo / landmarker.io

Image and mesh annotation web application
https://www.landmarker.io
BSD 3-Clause "New" or "Revised" License
114 stars 21 forks source link

meshes (at least) should be re-orientable #86

Closed jabooth closed 8 years ago

jabooth commented 9 years ago

Currently, the landmarker assumes that meshes are arranged in a particular orientation (+z facing us - being the 'front' of the object, y upwards).

This effects a number of things. Firstly, the camera is not free to be placed in any orientation - we enforce that the up direction remains up. This tends to make the camera easier to use for non-experts. Secondly, lighting is positioned to amplify surface changes for a surfaces in the y-x plane (e.g. where the face normally goes).

However, this is restrictive. Sometimes a mesh is loaded that was not orientated in a sensible way, and the current restriction makes landmarking near impossible.

We need to add some kind of mode to the landmarker where the user is able to choose what the 'up' direction is. Flow would be:

  1. User loads a mesh that is orientated unfavourably.
  2. User enables this special mode. Now the mouse can be used to choose a new 'up' direction.
  3. User locks the camera back down. The camera up vector is locked in the new position.
  4. The up vector choice persists as subjects change.
jabooth commented 9 years ago

We may need to move on this sooner rather than later. Medical professionals are using landmarker.io on CT scan results, and the universal standard here seems to be something like

UP = [0, 0, 1]
FRONT = [0, -1, 0]

It's a bandaid, but I'd like to add a toggle to the toolbar in mesh mode titled something like 'Z as up' (default to off). Flicking this on should change the up and front vectors to the above values.

This is a stop-gap solution, but we really need something to address this issue promptly.

jabooth commented 8 years ago

In the end we decided to move to a floating camera without a concept of 'up' to keep things orientated. That completely addresses this issue.

We will see how users go on with this simpler approach for now.