Refresh your Viewer experience: have a Milkshake!

milk-1Milkshake is the new Viewer from Cinder Roxley, who originally provided the Frontier Viewer. Unlike Frontier, which was a V1 TPV, Milkshake is a V3.2-based Viewer, and offers some very interesting options and additions.

Commenting on the switch, Cinder informed me, “[The] Snowstorm codebases allow much more flexibility to a developer. So it’s a lot more fun to hack on than antique snowglobe.”

The Viewer is currently only available for Windows, and this review covers release 3.2.6(2).


The installer is pretty compact compared to some Viewers: just 26Mb in size (although the latest 3.2. Development Viewer installer is only 28Mb), and the Viewer requires just 99Mb of disk space, once installed.

Logging-in reveals a little of Cinder’s sense of humour: forget the MotD, it’s the by-lines as the Viewer loads and connects to the servers that raise a smile. It’s certainly the first time I’ve been told to buckle my seatbelt when connecting to SL – although there have been times in the past when I’ve metaphorically done so!

Milkshake: raising a smile on logging-in

There’s also a little message related to “dressing your avatar” – is this a slight pause in the log-in process to ensure avatar textures get to download before the in-world view loads? If so, nice touch!

Once running, the UI resembles the standard V3.2 layout; the skin is roughly the same dark tone, but the buttons have a nice green tint to them that makes them look a little less “flat” than those of the official Viewer. The Navigation Bar also includes your location’s co-ordinates by default and incorporates an ABOUT LAND button alongside the HOME button. The menu bar includes an Avatar Offset slider (to adjust your avatar’s position relative to the ground(or prim)) as well as the Draw Distance slider now found in most V3-based TPVs.

Milkshake UI, default appearance

Button-wise, the default load for Milkshake keeps to the V3.2 standard – buttons to the left and bottom of the screen, with only the HOW TO button absent. Most interestingly, the buttons at the bottom of the screen are slightly offset to the right, providing space where the chat bar can be located, for those accustomed to having it V1-like in the lower left side of the screen. It’s still not ideal as the chat bar placement is a little off – but that’s a fault with the V3.2 code, not Milkshake.

Also, if you like to have labels and icons displayed on your buttons and keep all your buttons at the bottom of the screen and have a lot of buttons available, Milkshake will neatly wrap your buttons over two or more lines in the panel without compromising the space “reserved” for the chat bar. This does compromise the chiclet bar, if displayed at the bottom of your screen, but it is a nice touch.

Multiple buttons and the chat bar


Useful Tools

Milkshake offers a slightly revised Me menu, which includes an additional Useful Tools option. This provides quick access to a range of popular functions and options (right).

The Communicate, World and Build menus are as presented in V3.2, although World includes the option to revert back to Estate Time on the Sun menu, again in keeping with several other TPVs and providing greater convenience to users.

As Milkshake is based on V3.2, it includes the mesh upload option on the Build menu, which works as expected.


Film menu

An interesting addition to the Viewer is the Film menu, which brings together a range of options that should be of assistance to machinima makers. These include avatar and graphics options, so avoiding the need to jump back and forth around Preferences. Changes made to options in this menu are reflected back in their Preferences, where appropriate.

The Advanced menu includes an option to enable RLV for those that use it (on by default); with Help and Develop showing pretty much the same options as V3.2 (with a couple of Admin options absent from Develop).

Buttons, Buttons, Buttons

Milkshake provides, to date, the most comprehensive set of buttons yet found in a V3.2-based TPV. Some of these appear to have been pulled-in from other TPVs, most appear to be Cinder’s own work.

Buttons galore!

Joining the LL-supplied buttons, we have: the AO buttons and Area Search button, which I assume have been pulled across from Dolphin; About Region (shortcut to Region/Estate floater – handy for Estate Managers / Sim owners); Go Home (teleport to your home location – useful if you don’t use the Navigation Bar), Grid Status (opens the Grid status page in your designated browser); Statistics (opens the Statistics floater), and Translate (opens the Google Translate web page in your designated browser).

It’s a good selection, although I wonder at the effectiveness of the Translated button. I can understand why it is included; I’m just not sure people are going to want to either cut & paste back & forth between a browser page and the Viewer, or have the built-in Viewer open on their in-world view when chatting.


Milkshake sees some changes to Preferences; some of which are long overdue with various options now “built-in” to the Viewer and “on” by default). These include:

  • Flight limit disabled – fly high without the need for either a flight assist system or a bridge mechanism
  • Mu* poses (use “:” instead of “/me” at the start of emotes) on by default
  • Region / Chat range radar notifications are on by default
  • LookAt privacy is enabled by default

Elsewhere in Preferences, Cinder has been hard at work with some interesting tweaks and changes.


Has been tidied-up to present just the general settings for the Viewer – items that are tag-specific have been moved as have the typing / WASD options, while the option to run multiple copies of the Viewer has been added (good move; this is all too often buried in other Viewers). Somewhat interestingly, the default language option has been removed.


Includes the sub-tabs for Hardware, Rendering, DoF, etc., that can be found in other popular TPVs, but includes some rationalisation of options.

Sound and Media

Presents the V3.2 options with the addition of a checkbox to Display Music Information in Chat. The media filter system currently isn’t implemented, but Cinder informed me that it is very much on her to-do list.


Chat options

The Chat tab includes the following sub-tabs:

  • General: include the majority of the “standard” V3 chat options, although the bubble chat option has been removed (does anyone use that?), and two “IM Enhancement” options added: the first will display “is typing” alongside their name in the IM window, the second will prevent your Viewer broadcasting the fact that you are typing to any Viewer
  • Chat Notifications: presents the chat pop-up check box, together with sliders for setting toast duration times and button flashes
  • Translate: presents the V3.2 translate options
  • Spell Check: presents the spell check options

Move and View

Has been overhauled to comprise two sub-tabs, as shown below.

Move / View & Display options

Colours and Tags

This tab combines (and extends) the colour options for the Viewer and includes sub-tabs for name tags (from the General tab) and their colours, and client tag colours.

The Custom UI Colours in the General sub-tab are an adjunct to the use of skins, drawn from the Starlight FUI. Rather than just applying a pre-defined skin, options are included which allow you to re-colour elements of the UI as well (see the screen capture below, and note the button / tab text colours compared to other screen captures in this article).

Colour tab: note the UI colour options (top)

The system isn’t perfect – button labels can be coloured, but not button icons; floater panels can be recoloured, but not the menu bar, Navigation & Favourites bars, etc. However, the approach does allow for an additional degree of customisation.

Privacy & Setup

Provide access to the V3 options found under Privacy, Setup and Advanced, and adds a number of TPV options as well (options to select history logs, etc., to be cleared under Privacy, for example).


As with many TPVs, Milkshake has its own Preferences tab. This comprises four sub-tabs, all of which contain some nice touches:

Milkshake Preferences tabs
  • The general tab includes fields to set the default SAVE location for snapshots and the ability to pre-define the name of each picture you take (the default being the standard “snapshot”). You can also use a series of short code to add further information to the name: %r will add the region name and %p the parcel, for example
  • Chat includes a range of useful options (multi-line chat bar, dock the chat bar in the Conversations panel (so it is displayed tabbed alongside IM conversations); arrange tabs in the Conversations panel vertically or horizontally; allow IM tabs in the Conversations panel to be rearranged by dragging them; turn the profile icon displayed in IM tabs on/off (will only affect new IM conversations; conversations already open will be unchanged)
  • Inventory: includes options to set what a double-click on an attachment or wearable in your inventory will do (either ADD it to anything already worn at the same point / layer or REPLACE what is already being worn at the same point / layer) and other goodies
  • UI: allows you to set where and how various elements are displayed (e.g. chiclet location, whether profiles are displayed as a floater or as a web profile in Viewer’s browser, etc)
  • More: a range of other options (show muted avatars as a cloud, Mu* poses (for those who would prefer them off), OOC etc.) – together with a warning they may well be moved elsewhere in future releases.

Debug Options

Milkshake includes a range of debug options, all commencing with “Milkshake”, which allow you to toggle a range of features. These include items that are not currently found within Preferences, such as radar notifications (“MilkshakeRadarMessages”). Note that some of these are global actions (so setting MilkshakeRadarMessages to FALSE will disable all radar notifications, for example).

Other Options

Milkshake includes a lot of recent additions to the TPV world, including:

  • The ability to right-click on an object / avatar and REFRESH TEXTURES
  • Right-click on LMs in Notecards to teleport directly to them (no need to open the LM in PLACES and use the TELEPORT button)
  • Mouselook Zoom is included (go to Mouselook, press and hold the right mouse button and use the mouse wheel to zoom in / out on an object / avatar)
  • The Map includes the ability to “hide” the Legend
  • Radar is included, as mentioned above, but is range-limited to 512m, and excludes some of what might be regarded as the more “invasive” options  – such as the ability to teleport directly to someone within range
  • Also as mentioned above, LookAt privacy is enabled by default – your LookAt crosshairs will appear to move no further than a metre or two from in front of your avatar when viewed in any Viewer.

The Inventory panel also grabs a few noteworthy revisions from Catznip:

  • Right-clicking on an item of clothing in Inventory that is to be worn on the same layer as another item of clothing already being worn, will display an additional WEAR ON option in the menu. This allows you to select whether the additional items is to be worn “under” or “over” the existing layer
    • For example,suppose you have a jumper and a blouse that are both shirt layers – you can wear the blouse, then right-click on the jumper and use WEAR ON to wear the jumper “over” the blouse
  • Worn clothing items toggle the WEAR button at the bottom of the panel to TAKE OFF
  • Similarly, worn attachments toggle the ATTACH button (displayed in place of WEAR)  to DETACH.


On my usual test system, Milkshake produced some surprising results compared to other 3.2-based TPVs I’ve run of late – probably a reflection of it appearing to be built on the latest V3.2 development release (3.2.6). When on my own on a sim, I can comfortably hit an average of 50fps; when at home (at 360-ish metres), this climbs to just over 60fps. Even on a sim with several others, frame rates hold at 38-40fps. With shadows enabled this drops to around an average of 22fps – again faster than I’ve achieved with other TPVs of late.


I’ve encountered zero crashes in running the Viewer over that past few releases up to this one. In fact, Milkshake is one of the smoothest-running V3 Viewers I’ve used, and is fast on its way to becoming my Viewer of choice.

There are still elements to be refined  / added to the Viewer, and a few more bits and bobs I’d like to see. Autocorrect is, I believe, coming (it was in earlier releases, but has been removed from this one, presumably awaiting a small bug I encountered in testing). The media filters are also on the “TBD” listas mentioned, and I assume additional skins are coming, given there is a Skins tab in Preferences. I’d personally like a couple of Quick Prefs buttons / floaters for things like avatar physics & objects LOD, Windlight settings, etc., and for sound settings (a-la Firestorm), but these aren’t showstoppers for me.

I still find the chat bar within the 3.2 UI cumbersome in terms of its look and how well it can be “fitted” into the bottom of the Viewer window. While not a fault with Milkshake per se, it does put me off 3.2-based Viewers, even with the ability to hide the chat bar when not in use, simply because it is so bloody clunky-looking. It comes across as V3.2’s equivalent of the original Sidebar in Viewer 2.

These niggles aside, Milkshake is, as I said, really growing on me – and is potentially the first Viewer to seriously challenge Firestorm as my Viewer of choice. In fact, it’s very possible that another release or two could very well see me swapping over completely….


Milkshake download page


5 thoughts on “Refresh your Viewer experience: have a Milkshake!

  1. Great review. I’d love to know how the performance figures you quote actually compare with other viewers, since this issue overwhelms functionality and convenience for the great majority of users.

    Pep (doesn’t need the option for five o’clock shadow)


    1. I’m always leery of giving performance figures, as there are so many variables – GPU card & memory, CPU type and speed, available additional system memory, operating system, network badwidth (I always operate Viewer using the recommended 1500kbps as otherwise calculations tend to bring out a far higher figure) – and according to some speculative JIRA posts, possibly even ISP traffic shaping…

      Even when a consistent system base is used (as I always try), together with identical Viewer settings (Draw Distance, network bandwidth, the same reference sims, same overall graphics defaults, etc.), things can vary wildly for some reason. An ecample of this is that on some recent V3 releases, my fps barely climbed into the middle-teens – yet TPVs built on the *same* code-base were up in the 20s…

      However, what I may do in the new year is add a page / menu to this blog specifically for Viewer reviews and maintain a comparative “league table” of results obtained through my PC. It’ll still be subjective, but it may help…


  2. I realise that someone with a Ferrari giving relative 0-60mph timings on different brands of gasoline might not be particularly applicable to someone with a VW Bug, but even the most basic of comparatives would be useful, especially for those who are using the equivalent of a 2006 Toyota Yaris. AT the top end of the scale I suppose it is adventurers who want to document their extensive travels with high resolution, long draw distance shadowed images who want to know which viewer will enable their equipment to reach those high standards, but for me, I would just be able to have my clothes rez in les than three minutes, and to not still have grey textures after quarter of an hour.
    Pep (is not complaining about YOU, who is doing a great voluntary job, but that LL should be providing this sort of information as a matter of course to the different types of users they are trying to attract and retain)


    1. Well, I’ve tried to tackle frame rates :). Rez times again aren’t easy to define (or at least, I can’t think of an easy way of doing so) simply because of of the way the Viewer may handle things. Niran’s Viewer does give a rezzing count as an option (an average of around 12 seconds from my arriving in-world to my appearance in full). I did actually try to run a “simple” test using a sculpted prim as a baselines, and working from a) a cleared cache – so everything was downloaded from the server-side) and then b) with from the local cache (with just the data stored in it from the previous log-in with a cleared cache) – and even then, with some of the Viewers I use, things fluctuated wildly just on my PC. For example, loading from a cleared cache took one Viewer 23 seconds to fully-rez the sculpt; then on logging in with the data in my local cache, the same Viewer took 55 seconds & a second attempt took 17 seconds – I assume because it was simply grabbing and loading data from cache in no particular order.

      If you’re not seeing textures after many minutes, then (and bearing in mind I’m not a techie – I learn as I go) or might be due to network issues for you that are interrupting information being downloaded to your computer, or maybe a caching issue on your computer. Have you tried optimising your Viewer set-up & also tried using one of the Viewers that offer a texture refresh option?


Have any thoughts?

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.