The Three Object Viewer (3OV) plugin is an app for building 3D worlds in WordPress. With this latest 1.2.1 release, 3OV has added an exciting new feature - the NPC block! The NPC block enables the creation of AI powered NPCs in your 3D worlds, providing a new level of interactivity and immersion for visitors. The NPC block is capable of integrating with Alchemy (more below), Magick (more on magick), and any other endpoints you want allowing for custom configurations of AI logic and endpoint responses. This opens up a universe of possibilities for creating unique and engaging 3D experiences in 3OV environments.
The NPC block gives you the tools to create companions that live within 3D environments. These entities can interact with users, providing information, guidance, or entertainment. The NPC block has several attributes that can be customized like name, personality, default message, and a setting to enable object awareness.
Adding and configuring an NPC in your 3OV world is easy. Simply click on plus sign in the Environment Block editor and add the NPC block. Select a VRM or GLB file and fill in the attributes for name, personality, and default message in the block sidebar. You can reposition the NPC in the editor using the T and R keys to rotate and translate.
The block attributes allow users to personalize their NPC assistants and create more social interactions. For example, AI powered NPCs could be set up as a tour guides that greet visitors and provide information about the world. An NPC could also be set up as an in-world salesperson, showcasing products and services in a virtual store. To alter the personality of your entity, simply edit the personality data in the block settings and either AI or custom logic can react to that data.
If you would like to lock these NPCs down to only logged in users, you can use the new 3OV Settings page to define the access level for folks chatting. You can set it public, but I must caution, you are opening up a page that can build charges with your AI providers. I would recommend using more static string match type logic for public entities in Magick or an Alchemy Worker. The settings default to logged in users only.
We've also added a settings to enable room awareness which will use the alt text of every Model Block in a space to send alongside personality data to give an entity the data needed to potentially explain the world a visitor is asking about. We're excited to see how folks will use this!
Alchemy, Magick, and More
Special care has been given to ensuring that this block was not specifically tied to one AI provider, or even focus on AI exclusively. These NPC entities give a potentially standardized way of sending information about personality and identity as well as a message from a visitor in a world for that agent to respond to. How you handle that data in an endpoint and send the response is up to you.
To fine-tune the AI endpoint for your NPC, use the 3OV Settings panel. Here, you can choose to use the free endpoint provided by 3OV (https://alchemy.sxp.digital) using your own OpenAI API key, or directly use your Magick instances for more elaborate responses. We have open sourced a Cloudflare Worker called Alchemy Worker that can serve as a template for builders to create custom logic beyond a single shot request to an AI service. In a future date, SXP Digital/3OV will be offering services to make the configuration and options easier with our managed add-ons.
I've also heard rumblings that Magick is working to offer cloud services, so when those are available you can use the endpoint url similar to the localhost version shown below:
We are working with Magick to offer a starter template of the above spell to help you get started faster. This starter template is 1:1 matched in responses to the Alchemy Worker. You can create a blank spell with the template and point your url in the 3OV settings to that spell endpoint. Once it's pointed, the site is fully configured.
We have added a new setting to define the default animation for a VRM file in a 3OV world. You can use any Mixamo fbx file's animations to be retargeted to your NPCs and VRM files in world. If you would like to use the default idle animation, simply clear the default animation.
We think the potential of using AI powered NPCs in websites is exciting and we're stoked to be able to open source something that can bring characters to life. Whether you're creating a virtual world for gaming, education, or general business, we hope the NPC block will take your 3D environments to a more social level. I should mention, 1.2.1 also brings a range of fixes and improvements to enhance the overall performance and user experience of the plugin. This release has been a long time coming fixing some really sore points of the plugin. Please do share with us any feedback or experiences you've created with the block!