Inventory UI Design

From Second Life Wiki
Jump to navigation Jump to search

Thoughts on Inventory UI in SL

By Kelly Linden 14:01, 12 March 2007 (PDT)

Right now our inventory is already too complicated for new users with few items and not powerful enough for advanced users with thousands of items. In the end we end up with an inventory that is not good for anyone. At the same time, making it more complex, adding filters and links and more and more is not likely to make it really usable for anyone but the most hard core.

I think something drastic is probably needed to make our inventory actually work, and I'd love to be part of a discussion about it.

What do others do?

There are existing software systems that have the same problem our inventory does (lots of files). A couple of those are File Systems and Email.

OSX Applications

Apple has shown a will to put ease of use before any other priority so it makes sense to look a bit at some things they do.

One thing I do really like is how they handle applications. An application on windows is a single executable file burried somewhere with all the other files needed to run the program, and linked to from your desktop or start menu. In OSX an Application is *actually* a folder. Usually it doesn't look like one and it doesn't act like one. You double click it to start the app, and it is the only thing you have to move around if you want the app somewhere else. There are no links (though you can make them if you want) and you only see at the top level the data you need. At the same time an advanced user can browse the contents to see the actual executable(s) and other files needed for running the application.

Windows Start Menu

Windows has its cruft and kludge but they do get some things right. In particular the Start menu contains a list of recently or frequently used applications. I don't even know the algorithm used to decide what goes there, but the applications I use most are usually in that short list.

File Systems (more generally)

Both Windows and Mac, and even Linux, limit the locations user created files generally go. Your files go on the desktop or Documents (My Documents) or your home directory. These locations are easy to get to, relatively few and they don't contain any of that 'extra' stuff (programs, config info) that is actually filling your computer.

GUI Filesystems

GUI Filesystems support icons. Any recent incarnation supports custom icons on a per application basis. More recent versions even support thumbnail icons based on the actual data in the file. All these help to quickly and easily visually sort a collection of data and find specific items within the larger set.


Email has it's own problems. However it is a (mostly) full text medium which makes searching it easier. All email clients highlight 'new' items - those that have not yet been viewed - within the normal list. Additionally Google's gmail and 'Threaded' views in traditional email readers automatically attempt to group related data.

Recent versions of Outlook (2003 and 2007) are possibly worth looking at, as they they try and deal with making an inbox with hundreds/thousands of messages more usable:

  • Two-line view - adapt to thin window for message list by using two lines of text to display Subject, From, Date, Status, Flags and Size in < 200px of width.
  • Smart grouping - by name, date (e.g. today, yesterday, last week, last month)
  • Persistent "Search Folders" (also seen in Windows Media Player) which preserve searches
  • Single-click to flag items as important

Design Ideas

Packaging, Containers, Outfits and Items

A new class of inventory items that are containers. Containers all:

  • Can contain an 'icon' image, which if present is the icon (at 16x16 probably) for the item in inventory.
  • Can contain a 'help' notecard, which can be opened by context menu for the container (right click -> help)
  • Have their own edit interface for adding or removing items

Specific Inventory Types:

  • New inventory type Outfit
    • Contains all the attachments, body parts, clothing and gestures to make the outfit.
    • Outfits when worn are automaticly.
      • If you attach an outfit that has any piece that conflicts with an already worn outfit then the entire previous outfit is removed.
      • If the overlap is small (1 piece out of 10 for each of two 10 piece outfits for example), potentially warn user about removing the old outfit.
  • New inventory type Item (or 'Bundle', 'Package', 'Set' etc)
    • A container object that can hold many different things, including outfits but maybe not other Items.
    • May contain meta data about what to do for various actions - drag into world, drag onto avatar etc.
      • For example: When dragged onto an avatar attach this outfit, rez this vehicle on the ground, attach these gestures.
      • Defaults should make sense - dragging an item onto your avatar that contains an outfit will wear the outfit.
  • New inventory type Container
    • An easy generic container type.
    • Can't be put into the world
    • Dragging it *anywhere except another avatar* opens UI for seeing what is inside
      • Existing or improved 'Open' interface.

Icons and Previews

  • Containers contain the icon as described above
  • Other items - objects, notecards, scripts - do not get to set an icon.
  • Icons are only shown at 16x16 in inventory by default.
  • Preview mode will show large icons (32x32 or 64x64)
  • Optional preview pane will show large icon (64x64) for the selected item or the item under the cursor.
  • Images, although they can not set a seperate icon, can be their own icon in the 'Preview' modes, but not the normal 16x16 mode.
  • (no copy) (no mod) (no transfer) are replaced by an icon:
    • A fully permissive object has no extra icon.
    • There is 1 icon each for each permissions combination

Directory Structure

  • Always sort Special Folders to the top.
  • New base folder 'Images' replaces 'Textures' and contains 'Photo Album'
  • New base folder 'Clothing' contains 'Clothes & Bodyparts', 'Gestures & Animations'
    • Outfits go into the 'Clothing' folder itself
  • New base folder 'Items' contains 'Objects', 'Scripts', 'Notecards', 'Lost and Found', 'Sounds'
    • Items and Bags/Containers go into the base 'Items' folder
  • Calling cards go away completely - any missing features are added to Friends and IM interfaces


  • Trash gets cleaned every login of items older than X days. Defaults to 30, definable in Preferences.

Recently Used

  • List the last five outfits worn in a menu.
  • The menu could be part of the bottom bar and pop up, or part of the inventory window.
    • The main top menu needs its own roasting before adding this there.
  • List the last five locations teleported to in a menu.

New and Unread

  • Any item that has not yet been rezed or viewed is shown in bold or otherwise highlighted.
  • Optional filter to only show those items which have not been opened.
  • Right click -> 'Mark as Viewed' option to un-highlight the item.

Tagging, Searching, Filters

Alright, we can get all web 2.0 on this ;)

  • Every inventory item gets a new text field 'Tags'
    • Comma separated list of tags
    • Always modifiable by the owner, independant of permissions
    • Default 'tags' could be the description, with spaces replaced with commas.
  • Search finds by tag, name, owner or creator - who cares! If you type it, find the related items.
    • Searching your inventory for Chair will work! Even if your chair is named 'Ultra Recliner IV'
  • Replace the Filter window with an icon to the left of the search box that drops down a menu when clicked.
    • The menu contains all the object types (Textures, Sounds etc) and All (default)
      • No you can't filter for multiple types.
      • Maybe an exception for Textures and Snapshots, or replace the 2 types in the filter with 'Images'
  • Inventory Tabs
    • Allow "File --> New Tab" for multiple searching which gets remembered