Decapod Storycards - Calibration
Overview
- This calibration process starts either: a) after a new book project has been started and before going to capture, or b) during capture, triggered via the "Recalibrate" button
- The calibration process has three possible types of states, which occur in strict consecutive order:
 1. Error state: A camera setup check is the first step that occurs. This error state occurs *only* if the camera setup check failed. User cannot continue to the next calibration process state until the camera setup check is successful, but the user can skip calibration entirely if desired.
 2. "Skip option" state: This is the first state the user arrives at after a new book project has been started or continues an existing book project, *and* the camera setup check is successful. The user is given the option of continuing with calibration (to provide best results), or skipping it entirely (in which case capture will still be possible since the camera check setup has passed, but results may be unpredictable). (This state does not occur if the user triggered calibration via "recalibrate" while in capture, as that constitutes a direct imperative to the application to calibrate)
 3. Calibration state: Actual calibration state. For left-right calibration (Decapod 0.5), this means being able to: a) test capture, b) swap left and right cameras, and c) rotate the image
Error state (wireframes)
Storycard 1: Camera setup check
- While checking the camera setup, a "Profiling your cameras" message should appear (see wireframes)--canceling this returns the user to the previous screen (Book Management or Capture)
Storycard 2: Error messages
- The interface should provide an error message in the case that the camera setup check fails (messages are in italics):
 - No cameras connected
   -> No cameras connected ("It seems like no cameras are connected.\nDecapod requires two matching, supported cameras.")
 - One camera connected
   -> One camera incompatible ("It seems like you have only one camera connected, and it is incompatible.\nDecapod requires two matching, supported cameras.")
   -> One camera compatible ("It seems like you have only one camera connected.\nDecapod requires two matching, supported cameras.")
 - Two cameras connected
   -> Both cameras compatible, but not matching ("It seems like you have two supported cameras connected, but they are not matching.\nDecapod requires two matching, supported cameras.")
   -> One camera compatible, one camera incompatible ("It seems like you have two cameras connected; one is compatible, the other is not.\nDecapod requires two matching, supported cameras.")
   -> Both cameras incompatible
     -> Both cameras are incompatible, and are matching ("It seems like you have two matching cameras connected, but they are not compatible.\nDecapod requires two matching, supported cameras.")
     -> Both cameras are incompatible, and are not matching ("It seems like you have two cameras connected, but they are not compatible or matching.\nDecapod requires two matching, supported cameras.")
- The user can click "Try again" to retrigger the camera setup check
 - If the camera setup check is successful, the user is sent to the next state ("Skip option state")
 - If the camera setup check fails, the user loops back into the error state
- The user can click "Skip" to skip calibration entirely, and be sent to the capture interface
 - Doing so means no calibration profile is saved, and the capture action should be disabled
"Skip option" state (wireframes)
Storycard 3: Skip message
- This is an intermediate state before actual calibration. Occurs: a) when creating a new book, b) when continuing an existing book (thus *not* when triggering re-calibrate)
- At this point, the camera setup check should have passed, which implies we have two connected, matching, supported cameras
- User is asked to continue to calibration, or skip it entirely
 - If the user skips calibration, a default calibration profile is saved, the user is sent to the capture interface, and the capture action is enabled
Calibration state (wireframes)
Storycard 4: Initial, automatic test capture
- Upon arriving at this state (either from the user choosing to continue with calibration at the "Skip option" state, or from the user clicking "Recalibrate" in the capture interface), the system should trigger the shutter for both cameras (ideally simultaneously, or in rapid succession)
- The resulting shots should be displayed on the interface
Storycard 5: Triggered test capture
- Each page has a "Do another test capture" button
- Clicking "Do another test capture" should activate the corresponding camera's shutter (i.e., it does not activate both camera's shutters)
- The interface should update with the resulting shot
Storycard 6: Page rotation
- Each page has two rotation buttons, one each for clockwise and counter-clockwise rotation
- Clicking the rotation button should rotate the corresponding image accordingly
Storycard 7: Page swapping
Storycard 7A: Page swapping via button
- Clicking the swap button swaps the left and right images and assigns the camera arrangement accordingly
Storycard 7B: Page swapping via click and drag
- Dragging one of the pages to the other side should reorder and swap the pages accordingly (a la image reorderer)
Storycard 8: Calibration profile commit
- Upon clicking "Done", the calibration profile is saved, and the user is sent to the capture interface with capture action enabled