Kitely

We updated our system today with a couple of features that were requested by Kitely Market merchants. It’s now possible to easily deliver product updates to all the people who had purchased them in the past. We also added a feature that allows users of grids that had shut down to regain access to their Kitely Market purchases.

Deliver Product Updates

Kitely Market merchants often make tweaks and improvements to their products even after they’ve been released. They’ve told us that they would like to have an easy way to deliver the new version of their products to all the people that had bought them in the past. This is now possible using a feature called “Batch Redeliver”.

To redeliver a product to all the Kitely avatars that had received it in the past, go to the product’s Edit page and click on Batch redeliver:

You will be asked to confirm, and then the latest version of the product will be added to the inventories of all of the Kitely avatars to which it was delivered in the past. These avatars will receive an IM telling them that they received the updated product. (Or an Offline IM, if they’re currently offline.)

This feature doesn’t deliver the updated product to avatars from other grids (i.e. non-Kitely avatars), because that’s very error-prone due to the many problems that can occur when communicating with other grids. The merchant can, however, send a product update to a specific non-Kitely avatar by going to the Sales History page and selecting the “Redeliver” option for that avatar.

Transfer Hypergrid Orders to Kitely

This feature allows Kitely Market merchants to select orders that were originally delivered to another grid, and redeliver them to Kitely avatars.

This feature is intended to be used when a grid shuts down. When that happens the grid’s users lose their inventory, including their Kitely Market purchases. By using this feature the merchant enables their customers to get back their Kitely Market purchases, using their Kitely avatar. Kitely Market has been used to deliver orders to hundreds of OpenSim grids. Since dozens of grids shut down each month, this feature can be very useful for merchants that have customers from a grid that no longer exists.

It is completely up to the merchant to decide whether to use this feature or not. They might use it if they’re contacted by someone who had an avatar on the now closed grid, and transfer only that avatar’s orders. Alternatively, if a merchant hears that a grid has closed, they might decide to transfer all of the purchases that were delivered to any avatar on that grid. Lastly, the merchant can decide that they would rather handle such cases in other ways and not use this feature at all.

In the Kitely Market Sales History page, it’s now possible to search for orders by entering the name of the avatar that received the purchase. Until now it was only possible to search using the name of the user that bought the order. Usually the user that buys the order is also the receiving avatar, but they’re different in the case of Gifts, or when the order is delivered to an avatar on another grid.

We fixed a bug that caused a few fonts to stop working in OpenSim. The affected fonts were the Microsoft ClearType fonts, including Cambria and Calibri.

The website Hypergrid Business is now holding its eighth annual OpenSim grid survey, and we need your help to be able to attract additional people to our growing community. If you’re willing to spend a few minutes to help spread the word about Kitely then please answer this short multiple choice survey.

Last year many of you participated in the survey and your endorsement helped convince more content creators to list their items in Kitely Market and more people to join our community. Your continued support this year is crucial for our continued growth.

We’ve updated our system today with several improvements that were requested by our users. Among other things, we’ve made it easier to use the wish lists in Kitely Market, and to add Demo items to Kitely Market product listings.

Improved Wish List Usability

It’s now easier to buy items that are in your Wish List. The Wish List contains a “Buy” link next to each item. Previously, clicking this link would switch to the Shopping Cart, where the item would appear. This made it cumbersome to add multiple items from your Wish List to the Shopping Cart, because you’d have to flip back and forth between these two pages for each item.

Now, clicking “Buy” adds the selected item to the Shopping Cart but doesn’t switch to the Shopping Cart page. This makes it much faster to buy multiple items from the Wish List.

Simplified Demos Creation

Kitely Market has built-in support for adding Demos to product listings. Previously this feature required a lot of work from content creators, because they had to create a Demo item for each of the product’s variations. Products in Kitely Market often have many variations, so this quickly became tedious. It was also mostly unnecessary, since usually a product only needs one Demo, regardless of how many variations it has. For example, even if a dress is available in 8 colors, it’s often enough to provide a demo in only one color.

To address this issue, we’ve now changed Kitely Market so that if a product has any Demo, in any of its variations, then that Demo can be used by all of the variations. This eliminates the need to create multiple Demos for the product.

Of course, you can still create individual Demos per variation if you want. Each variation uses the following Demo, in order of preference:

The variation’s own Demo.

If that doesn’t exist: a Demo from the nearest previous variation in the Variations table.

If that doesn’t exist either: a Demo from the nearest succeeding variation in the Variations table.

If none of the above exist then the product has no Demo.

Removed Warnings for Standard OpenSim Assets

Kitely Market has built-in tools for finding and fixing problems in products. When content creators add a product to Kitely Market, we check their product and show warnings if it contains references to non-existing assets. However, sometimes these references are for standard predefined OpenSim asset identifiers. These predefined identifiers aren’t regular assets, but they’re not missing, and therefore shouldn’t cause our system to display warnings. We maintain a list of such assets, and we’ve now added several additional asset identifiers to that list to eliminate a few incorrect warnings that our system had previously displayed.

Enabled OSSL Functions

We’ve enabled the following OSSL functions for use by everyone. Previously they were only enabled for the world owner, but this was too restrictive:

We are proud to announce that we’ve passed a new milestone: with significant growth over the past year, Kitely Market has sold over $100,000 worth of virtual goods to date.

Kitely Market first opened to the public on August 2013. Over the past few years, Kitely Market has become the main marketplace serving the OpenSim metaverse (the Hypergrid).

Here are a few noteworthy stats:

When Kitely Market first opened it had under 1,000 product variations listed. It now offers more than 17,000 product variations.

Kitely Market’s sales revenue last month was over 16 times higher than its sales revenue on its first month in business.

When Kitely Market opened, Kitely was still a closed grid and only Kitely users could buy from it. In March 2014 Kitely Market started delivering to the Hypergrid, and has since delivered to avatars on more than 170 different OpenSim grids.

Our top merchant has sold more than $10,000 worth of virtual goods.

Our top 10 merchants have each sold at least $1,300 worth of virtual goods.

More than 100 Kitely Market merchants have each sold at least $100 worth of virtual goods.

One of our main goals for Kitely Market was to enable content creators to easily make money selling their creations to users from multiple OpenSim grids, without having to manually deliver their goods to all of those grids. Kitely Market’s growth over the past few years demonstrates that talented content creators can see a nice return from selling to an open metaverse, even when it still includes only a few tens of thousands of active users, which are spread between hundreds of different grids.

Thank you for using Kitely Market! Your help in spreading the word about our marketplace is what enabled it to grow and provide you with more content buying options. With your continued support, we believe that this year we’ll be able to serve even more buyers and content creators.

Following many requests from our users, we’ve now implemented the viewer’s in-world search tabs. Click Ctrl+F to open the Search window, and then click on the tab that you want to search.

People

This tab lets you search for avatars.

Groups

This tab lets you search for OpenSim groups.

Places

This tab lets you search for parcels. Only parcels that have enabled the “Show Place in Search” checkbox can be found (see details at the end of this post).

Events

This tab lets you search for Events. These are the events from our events system.

If you’ve created an event then we highly recommend that you specify the event’s location, as described in How to Add Events. Now that people can search for events in the viewer, they will want to click “Teleport” to go to the location of the event — but that’s only possible if the event creator has entered a valid location for the event.

Classifieds

This tab lets you search for Classified Ads.

We’ve implemented a complete Classifieds system, so you can now buy Classified Ads (using Kitely Credits). Each Classified Ad runs for one week, and you can choose to have it be renewed automatically.

The minimum price of a Classified Ad is 50 KC (per week). In Search, the Classified Ads are sorted by the price that the classified’s creator chose to pay for the ad: from highest price to lowest price.

A few people had created classifieds in the past. Those ads have been deleted, because we didn’t charge people for classifieds until now, and we don’t want to start charging people unexpectedly.

Web Search

This is the only tab that worked even before today’s update, and it hasn’t changed. It still lets you search for People or Places.

Note that in the “Web Search” tab, searching for places searches for Worlds. In contrast, searching in the “Places” tab searches for Parcels.

Add Your Parcels to Search

If you have a parcel that you’d like people to visit then we highly recommend that you make it visible in Search:

Open the About Land dialog (using the menu: World > Parcel Details)

Give the parcel a good name and description, to make it easy to find in Search. (When people search for Places, the results are sorted by the best match to the parcel’s name and description.)

Enable the “Show Place in Search” checkbox (in the Options tab of the About Land window).

Set a Landing Point.

Set a snapshot (not required, but recommended).

Select an appropriate Category.

When you make changes to your parcel, it may take a few minutes before these changes are visible in Search.

Parcel Maturity

When searching for Places, it’s possible to select the desired maturity rating: only parcels that have this maturity rating will be shown. Therefore, you should set your parcels’ maturity rating correctly. But this is a bit tricky, because the region’s maturity rating limits which maturity rating you can assign to the parcel:

If your region has a maturity rating of “General” then all the parcels in the region are also “General”.

If your region has a maturity rating of “Moderate” then you can choose, for each parcel, whether it’s “General” or “Moderate”.

If your region has a maturity rating of “Adult” then all the parcels in the region are also “Adult”.

You can change the region’s maturity rating, but note that this only takes effect after the world is restarted.

It’s possible to set a region maturity rating (in OpenSim) that’s different from the world maturity rating (which is chosen in the Kitely website), but this is confusing so we recommend that you keep the two maturity ratings the same. In other words, if you change one maturity rating then you should also change the other one to match.

To change a world’s maturity rating, go to the My Worlds page on the Kitely website and click the Manage link next to the world you wish to change. This will open that world’s Manage World window. The option to change the world’s maturity rating is found in that window’s Access tab.

We upgraded our infrastructure today with a faster storage device for the main system database. Until now, this database was stored on a regular (magnetic) hard disk. This hard disk was sufficient for our needs until a couple of days ago, when it started limiting the speed in which our system could handle database requests. We have therefore decided to upgrade our database to run on an SSD (a fast flash-memory-based hard disk) to help us keep up with the increasing usage of Kitely worlds.

By the way, the world nodes (the servers that run OpenSim) have been using SSDs since 2014.

The website Hypergrid Business is now holding its seventh annual OpenSim grid survey, and we need your help to be able to attract additional people to our growing community. If you’re willing to spend a few minutes to help spread the word about Kitely then please answer this short multiple choice survey.

Last year many of you participated in the survey and your endorsement helped convince more content creators to list their items in Kitely Market and more people to join our community. Your continued support this year is crucial for our continued growth.

We updated Kitely today with several features that improve the in-world experience, including a system that automatically optimizes Kitely worlds so they’ll start faster.

Automatic World Optimization

A common problem in OpenSim is that objects that have complex physics meshes can cause the world to start slowly. A physics mesh is the part of the object that determines where it’s solid, and where avatars can walk through it. For example, suppose you have a large arch in your world. The object’s physics mesh would also be in the shape of an arch: this is what allows users to walk back and forth under the arch.

Most physics meshes are simple and don’t cause a problem. However, if these physics meshes are very complex (i.e., they contain many triangles), then it takes OpenSim a long time to parse them. This makes the world start slower, because this parsing is performed when the world starts. In some cases we’ve seen worlds that take an extra 10 minutes (!) to start, just because of the time that they have to spend parsing complex physics meshes.

Note that all objects have a physics mesh; not only mesh objects. However, in practice, usually only mesh objects (and some sculpties) can have a physics mesh that’s complex enough to cause a problem.

In the past, when we’ve seen this problem we used to contact world owners and ask them to fix their objects: either by simplifying the physics mesh, or by making the objects phantom (since a phantom object’s physics mesh isn’t used, and therefore it doesn’t take any time to parse during startup). But this took a lot of work both on our part, and on the world owner’s part, who had to track down all of the objects and fix them.

Therefore, in today’s update we added a feature that automatically handles this problem. When Kitely worlds start, any object that takes 1.5 seconds or more to parse is automatically made phantom. Because this is done automatically, world owners no longer need to track down the objects themselves. We also send an email with a detailed list of all the objects that we had made phantom, so if the world owner prefers to optimize their physics meshes and make the objects non-Phantom then they can easily locate the objects in-world.

Here’s an example of part of such an email:

Dear Oren,
Your Kitely world Bridges contains some objects with complex physics meshes. These
meshes were causing the world to start slowly, because of the time that it takes
OpenSim to process them.
[...]
Slow mesh: 4266 ms
Object:
Name: Tennis Racket High
UUID: af322f3d-e937-4876-b060-c908762f8e5f
Location: (402.1, 249.4, 20.9)

This feature is now live in all Kitely worlds.

Enabled llRequestURL in the Same Region

Before today’s update, there was a problem with llRequestURL: the URL that it returned only worked when it was called from other regions. However, when it was called from a prim in the same region, it didn’t work. This happened due to a security feature in OpenSim whose details are too technical to explain here. If you’re interested, see this forum thread for more information.

We’ve now fixed this problem, by having llRequestURL provide URLs that contain an IP instead of a hostname.

More Offline IMs

Some of our users have said that they often reach the limit on Offline IMs (which was 25), causing them to miss some IMs. Therefore, we’ve increased the number of Offline IMs that are saved for each avatar from 25 to 50. This is the same limit that Premium Account users in Second Life get.

An important part of the Kitely experience is the Kitely Welcome Center. This world is the main entry point to our grid, and it serves to introduce new users to the wide range of services and destinations available in Kitely.

We are happy to announce that today we rolled out a new and improved version of the Kitely Welcome Center. This updated version was created from scratch, with the goal of retaining the spirit of the previous welcome center while improving its usability and performance.

Acknowledgements

The Kitely Welcome Center is the result of an ongoing community project that was first launched in 2013. The current redesign was made by the following people who generously contributed their time:

Ozwell Wayfarer: designed and built the new Kitely Welcome Center, using as inspiration the design that Paislee Myrtle created for the original welcome center. Most of the items in the new welcome center were contributed by Ozwell from his Kitely Market store, Worlds End Landscaping & Roleplay.

Dot Matrix: was the project coordinator and created the information signs.

Serene Jewell: provided usability feedback early on, and was later joined by more than a dozen other Kitely community members in testing the new world.

Tocy Sweet: was not directly involved with this project, but she deserves credit for the graphical design of the signs in this world (which were created by Dot), since they’re based on her design for the Kitely Market advertising campaign. Tocy’s Kitely Market store is Sweet Distractions.

Dundridge Dreadlow: was not directly involved with this project, but he deserves credit for creating some of the scripts that were taken from previous versions of the Kitely Welcome Center. Dundridge’s Kitely Market store is Dundridge Dreadlow Developments.

Update Your Landmarks Now

If you have any existing landmarks for Kitely Welcome Center then they will no longer work, because this new world replaced the previous one. Please visit the new Kitely Welcome Center by using its world page or its Hypergrid address (grid.kitely.com:8002:Kitely Welcome Center), and create new landmarks to replace your outdated ones.

Likewise, if you’ve previously set the Kitely Welcome Center as your Home in the viewer, then enter the new Kitely Welcome Center and reset your Home to the new world.

Thank You Again

We want to give special thanks, yet again, to Ozwell Wayfarer who spent hundreds of hours creating this new world. While many other people played a part in creating the new welcome center and the ones that preceded it, Ozwell did the lion’s share of the work in making this new iteration possible.

Thank you to all past and current contributors who’ve helped build this wonderful virtual world. We welcome everyone to come and visit!

We updated the system today with a feature that makes Events in Kitely much easier to find and attend. This update also includes several other bug fixes and improvements.

Events

Events are a great way to meet other people and have a good time. In this update we’ve made it much easier to see the list of active and upcoming events. The list of events in Kitely is now shown in the viewer’s login page:

Click on an event to see its details. Then, click on the event’s location to enter the world where the event is taking place.

The Kitely Events Calendar is maintained by the Kitely community. If you’d like to add your own events to the calendar then see How to Add Events.

New Design for the Viewer Login Page

We redesigned the viewer’s login page in order to make more information visible, while taking up less screen space. We heard from our users that the previous design (where the panels appeared one below the other) was too tall, so some users didn’t see the lower panels because they appeared below the bottom of their monitor.

Therefore, we’ve changed the design. The four main panels now appear in a 2×2 square. Each panel only shows part of its information. To see the full panel, simply move the mouse into the panel: it will immediately expand to show more information.

Kitely has an option to send emails when a user receives IMs or Group Notices while offline. In today’s update, we’ve split this option into two parts:

Send me an email if I receive an Instant Message from a person while offline (Default: on)

Send me an email if I receive a Notice from one of my groups while offline (Default: off)

The reason for this change is that some users want to receive email notifications only when someone sends them an IM, but not when one of their groups sends a Notice, because Notices aren’t directed personally at them.

We’ve made the new option (send email on Notice) set to Off by default. So if you do want to receive emails on Group Notices then go to your Settings page and turn this option on.

Other Improvements

We fixed a bug that sometimes caused IM’s to stop working after a user teleported to another world.

In a previous update we added the ability to redirect a Kitely Market order from a Kitely avatar to a Hypergrid avatar. We’ve now improved this feature so that even if the order contained some No-Export items (which can never be delivered to a Hypergrid avatar), we’ll still redeliver all of the Exportable items that are in the order, instead of refusing to redeliver anything.

Some products in Kitely Market have demo versions. We don’t allow sending Demos to Hypergrid avatars; they can only be sent to Kitely avatars. Previously, if you had selected a Hypergrid avatar then we silently ignored your choice and sent the items to your Kitely avatar instead. But this wasn’t clear: people were left wondering why the Demo items weren’t delivered to their Hypergrid avatar’s inventory. So now we show an error message if you attempt to deliver Demo items to a Hypergrid avatar.

We created a server-side workaround for a viewer bug that causes viewers to fail to load the avatar’s inventory when some of the inventory items contain unusual characters in their name or description.

We fixed a rare problem in Kitely Market Analytics that could cause some Views and Impressions to be double-counted.

We updated the version of the Facebook API that we use to version 2.6. This shouldn’t have any visible effect, but if you have a Facebook-connected Kitely account and do notice a problem then please let us know.