As a UI designer I heard this one a lot : “If my mom can’t use it the first time she tries, it is not intuitive”. First of all, it is not your mother who is confused – it is you 🙂 But if we were to follow that logic, we wouldn’t have a computer mouse or even a touch screen. It may be semantics, but to me “Intuitive” means that 99.9% of all people can use the system after being shown how to use it ONCE. Trying to design a system that everyone can use with no introduction is not cost efficient. As soon as people become familiar with the system, they are annoyed that they have to use a wizard to add a camera, annoyed that the interface is cluttered with labels (100 labels are as confusing as none). You can do a “let’s get to know each other” like on a lot of mobile devices and video games these days, but so far no-one is willing to make that investment.
We looked at the traditional systems; most have an L-type layout (menu on the left and some controls at the bottom, video squeezed in at the top/right corner). In a 16 camera view, you may have the controls on the left or bottom panel, but the video panel is not adjacent to the controls, which – to me – feels strange. My other concern is that the vast majority of the time, people are simply looking at video. Not using the controls at all, yet the controls take up more than 30% of the screen estate. Frequently, functions that are never, ever, used are prominently displayed (along with a vendor logo!). The many functions that are always visible are then grouped in tabs and hidden in panels that get scrolled below the edge of the screen and so on.
Very early on we decided to make some tough decisions on the design. The toughest task is to decide NOT to show something. Any design committee can fall into the trap of “show everything”. As people complain they cant find a particular button, the solution is to “make it bigger”, “make it red”, “make it blink”, and before you know it…you’ve got Times Square.
Granted, we did go to extremes at times, and we had heated arguments about just about every button on the screen. It would have been easier on the team to just copy what everyone else is doing, but luckily we were able to try something new.
Need Camera Grouping?
Some systems allow you to group cameras. You can create a “lobby group”, a “1st floor group” and so on. This is functionally very close to creating a view. All the cameras in the lobby could be added to a view called “lobby view”. The user could pick that view and get an overview, and then maximize each camera to view what happens on that camera in detail. In a way, the view is a group of cameras in itself. This means that there is no need for “camera groups” in the client.
If you wanted to bypass the “select view, maximize camera”, we could make an additional node on a view in the tree. This node would contain automatically generated 1×1 views of each camera in the parent view. The user could then either select “lobby view”, or directly from the view selection menu, pick “lobby camera 1”.
Another alternative to groups
As an experiment I’ve added a filtering mechanism to our camera selector; When the camera selection list is visible you can start typing on the keyboard. The camera list is then filtered by what you enter. Say you enter L… O… B… now all cameras with the string “lob” in their name will be displayed. This means “Lobby East Camera 1″ but also “Lobster Bay Camera”. Keep typing.. B… Y and now the list is filtered even further. In most cases, you don’t really need to type the entire word.
The camera menu can be invoked from the keyboard (the tilde key), which saves another few mouse clicks.
Keep in mind that this is a preview, and there are no guarantee that this feature will be in the next release (you can tell that Ocularis is hosted in my test-harness too)
To me, tool tips are a designers crutch. Can’t think of an icon? Just add a tool tip! Then you get tooltips that are really miniature manuals. “Click the button below to play video from the selected camera in forward direction at the speed selected on the playback speed widget in the left panel”. Others are meaningless; you have a button that has a label called “open”. Hover the mouse, and the tool tip says “open”.
But in this case, we needed tool tips – no question about that – so we added them a while back 🙂
Instant Playback in Live Mode
We added instant playback to make it possible for the operator to back up and review something that just happened without having to switch into full browse mode, and thus pausing all the other cameras. It is not a tool meant to perform forensics, but to allow the operator to make a quick decision on whether to investigate further. Naturally, this makes no sense in a 1×1 view where there are no other cameras (not sure why John Honovich decided to demonstrate this feature in a 1×1 view 🙂 – why, John, WHYYYYY???)
Playing back exported video
In the past Ocularis did not have a separate, low spec database player. We do now. I felt that most external entities would prefer individual snapshots or AVI files, rather that some proprietary player. If a TV-network is putting out an APB they need to prepare the video for broadcast, in that case an external player is useless. Sending evidence to law enforcement would probably also be in JPEG/AVI format rather than some binary executable (although a friend of mine tried to email local police, but had to use the handling officers private gmail account as the police did not allow emails with attachments!)
My impression was that we’d made up this use case, where the judge needs to see the video, and it HAS to be the original format, and the judge has a low spec PC (or something like that). I felt that the truth was that the client we had in the past was unable to open exported video by itself, so we made a “player”. Furthermore, to run the client, you needed to “log in” somewhere which is not always possible. If the client could run in “disconnected” mode, then there would be no need for an external player.
The player also serves another purpose. If I export the evidence as AVI, then I have no real good tools to seek in the video on a frame by frame basis, nor can I print a “report” from Media Player, or export singular frame (without having a fair amount of skill) or perform digital zoom on an area. A simple AVI player that could offer some rudimentary forensics would probably do just as well.
Multiple Camera Export
In a 2×2 view, you can actually export any or all 4 cameras at once. The export dialog allows you to select which feeds to include, and exporting happens in the background. Once the export has started, you can go back to live view, perform further investigation and so on.
Yes, I am shamelessly promoting the product that a quite a few people put a lot of effort into making. I think there are some misconceptions about why we did things the way we did, perhaps I can offer some insights. All of us care very much about external input, and critique from peers. It does not mean that I have to agree, but trust me – we do take it very seriously.
No, Ocularis is not perfect, never will be. There will always be things that we can improve, and we certainly can’t be perfect to everyone. Hopefully we can be close to perfect for someone.