{"id":5623,"date":"2025-12-19T22:08:54","date_gmt":"2025-12-19T22:08:54","guid":{"rendered":"https:\/\/dizainoarkliukas.lt\/?p=5623"},"modified":"2025-12-19T22:08:54","modified_gmt":"2025-12-19T22:08:54","slug":"new-ai-driven-npcs-can-see-navigate-and-chat-hypergrid-business-2","status":"publish","type":"post","link":"https:\/\/dizainoarkliukas.lt\/?p=5623","title":{"rendered":"New AI-driven NPCs can see, navigate, and chat \u2013 Hypergrid Business"},"content":{"rendered":"<p><\/p>\n<div>\n<p><span style=\"font-weight: 400;\">I\u2019m a developer who\u2019s spent decades working with game engines and AI systems. And watching NPCs stand motionless in elaborate, carefully crafted virtual spaces felt like a waste. These worlds had 3D environments, physics, avatars, ambiance\u2014everything needed for immersion except inhabitants that felt alive.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The recent explosion of accessible large language models presented an opportunity I couldn\u2019t ignore. What if we could teach NPCs to actually perceive their environment, understand what people were saying to them, and respond with something resembling intelligence?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">That question led me down a path that resulted in a modular, open-source NPC framework. I built it primarily to answer whether this was even possible at scale in OpenSimulator. What I discovered was surprising\u2014not just technically, but about what we might be missing in our virtual worlds.<\/span><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Turinys:<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/dizainoarkliukas.lt\/?p=5623\/#The_fundamental_problem\" >The fundamental problem<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/dizainoarkliukas.lt\/?p=5623\/#Building_spatial_awareness\" >Building spatial awareness<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/dizainoarkliukas.lt\/?p=5623\/#The_architecture_six_scripts_one_system\" >The architecture: six scripts, one system<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/dizainoarkliukas.lt\/?p=5623\/#Intelligent_movement_that_actually_works\" >Intelligent movement that actually works<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/dizainoarkliukas.lt\/?p=5623\/#Making_gestures_matter\" >Making gestures matter<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/dizainoarkliukas.lt\/?p=5623\/#The_configuration_philosophy\" >The configuration philosophy<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/dizainoarkliukas.lt\/?p=5623\/#Why_this_matters\" >Why this matters<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/dizainoarkliukas.lt\/?p=5623\/#Current_state_and_whats_next\" >Current state and what\u2019s next<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/dizainoarkliukas.lt\/?p=5623\/#Testing_and_real-world_feedback\" >Testing and real-world feedback<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/dizainoarkliukas.lt\/?p=5623\/#The_bigger_picture\" >The bigger picture<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"The_fundamental_problem\"><\/span><b>The fundamental problem<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Let me describe what traditional NPC development looks like in OpenSimulator.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The platform provides built-in functions for basic NPC control: you can make them walk to coordinates, sit on objects, move their heads, and say things. But actual behavior requires extensive scripting. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Want an NPC to sit in an available chair? You need collision detection, object classification algorithms, occupancy checking, and furniture prioritization. Want them to avoid walking through walls? Better build pathfinding. Want them to respond to what someone says? Keyword matching and branching dialog trees.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Every behavior multiplies the complexity. Every new interaction requires new code. Most grid owners don\u2019t have the technical depth to build sophisticated NPCs, so they settle for static decorations that occasionally speak.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">There\u2019s a deeper problem too: NPCs don\u2019t know what they\u2019re looking at. When someone asks an NPC, \u201cWhat\u2019s near you?\u201d a traditional NPC might respond with a canned line. But it has no actual sensor data about its surroundings. It\u2019s describing a fantasy, not reality.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Building_spatial_awareness\"><\/span><b>Building spatial awareness<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">The first breakthrough in my framework was solving the environmental awareness problem.<\/span><\/p>\n<figure id=\"attachment_79176\" aria-describedby=\"caption-attachment-79176\" style=\"width: 469px\" class=\"wp-caption aligncenter\"><figcaption id=\"caption-attachment-79176\" class=\"wp-caption-text\">(Image courtesy Darin Murphy.)<\/figcaption><\/figure>\n<p><span style=\"font-weight: 400;\">I built a Senses module that continuously scans the NPC\u2019s surroundings. It detects nearby avatars, objects, and furniture. It\u2019s <\/span><span style=\"font-weight: 400;\">measuring distances, tracking positions, and assessing whether furniture is occupied. This sensory data gets formatted into a structured context and injected into every AI conversation.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Here\u2019s what that looks like in practice. When someone talks to the NPC, the Chat module prepares the conversation context like this:<\/span><\/p>\n<blockquote>\n<p><span style=\"font-weight: 400;\">AROUND-ME:1,dc5904e0-de29-4dd4-b126-e969d85d1f82,owner:Darin Murphy,2.129770m,in front of me,level; following,avatars=1,OBJECTS=Left End of White Couch (The left end of a elegant White Couch adorn with a soft red pillow with goldn swirls printed on it.) (scripted, to my left, 1.6m, size:1.4\u00d71.3\u00d71.3m), White Couch Mid-section (The middle section of a elegant white couch.) (scripted, in front of me to my left, 1.8m, size:1.0\u00d71.3\u00d71.0m), Small lit candle (A small flame adornes this little fat candle) (scripted, front-right, 2.0m, size:0.1\u00d70.2\u00d70.1m), Rotating Carousel (Beautiful little hand carved horse of various colored saddles and manes ride endlessly around in this beautiful carouel) (scripted, front-right, 2.4m, size:0.3\u00d70.3\u00d70.3m), Coffee Table 1 ((No Description)) (furniture, front-right, 2.5m, size:2.3\u00d70.6\u00d71.2m), White Couch Mid-section (The middle section of a elegant white couch.) (scripted, in front of me to my left, 2.6m, size:1.0\u00d71.3\u00d71.0m), Small lit candle (A small flame adornes this little fat candle) (scripted, front-right, 2.9m, size:0.1\u00d70.2\u00d70.1m), Right End of White Couch (The right end of a elegant white couch adored with fluffy soft pillows) (scripted, in front of me, 3.4m, size:1.4\u00d71.2\u00d71.6m), Executive Table Lamp (touch) (Beautiful Silver base adorn with a medium size red this Table Lamp is dark yellow lamp shade.) (scripted, to my right, 4.1m, size:0.6\u00d71.0\u00d70.6m), Executive End Table (Small dark wood end table) (furniture, to my right, 4.1m, size:0.8\u00d70.8\u00d70.9m)\\nUser<\/span><\/p>\n<\/blockquote>\n<p><span style=\"font-weight: 400;\">This information travels with every message to the AI model. When the NPC responds, it can say things like \u201cI see you standing by the blue chair\u201d or \u201cSarah\u2019s been nearby.\u201d The responses stay grounded in reality.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This solved a critical problem I\u2019ve seen with AI-driven NPCs: hallucination. Language models will happily describe mountains that don\u2019t exist, furniture that isn\u2019t there, or entire landscapes they\u2019ve invented. B<\/span><span style=\"font-weight: 400;\">y explicitly telling the AI what\u2019s actually present in the environment, responses stay rooted in what visitors actually see.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"The_architecture_six_scripts_one_system\"><\/span><b>The architecture: six scripts, one system<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Rather than building a monolithic script, I designed the framework as modular components.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Main.lsl<\/strong> creates the NPC and orchestrates communication between modules. It\u2019s the nervous system connecting all the parts.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Chat.lsl<\/strong> handles AI integration. This is where the magic happens\u2014it combines user messages with sensory data, sends everything to an AI model (local or cloud), and interprets responses. The framework supports KoboldAI for local deployments, plus OpenAI, OpenRouter, Anthropic, and HuggingFace for cloud-based options. Switching between providers requires only changing a configuration file.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Senses.lsl<\/strong> provides that environmental awareness I mentioned\u2014continuously scanning and reporting on what\u2019s nearby.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Actions.lsl<\/strong> manages movement: following avatars, sitting on furniture, and navigating. It includes velocity prediction so NPCs don\u2019t constantly chase behind moving targets. It also includes universal seating awareness to prevent awkward moments where two NPCs try to sit in the same chair.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Pathfinding.lsl<\/strong> implements A* navigation with real-time obstacle avoidance. Instead of pre-baked navigation meshes, the NPC maps its environment dynamically. It distinguishes walls from furniture through keyword analysis and dimensional measurements. It detects doorways by casting rays in multiple directions. It even tries to find alternate routes around obstacles.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Gestures.lsl<\/strong> triggers animations based on AI output. When the AI model outputs markers like <\/span><span style=\"font-weight: 400;\">%smile%<\/span><span style=\"font-weight: 400;\"> or <\/span><span style=\"font-weight: 400;\">%wave%<\/span><span style=\"font-weight: 400;\">, this module plays the corresponding animations at appropriate times.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">All six scripts communicate through a coordinated timer system with staggered cycles. This prevents timer collisions and distributes computational load. Each module has a clearly defined role and speaks a common language through link messages.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Intelligent_movement_that_actually_works\"><\/span><b>Intelligent movement that actually works<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Getting NPCs to navigate naturally proved more complex than I expected.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The naive approach\u2014just call <\/span><strong>llMoveToTarget()<\/strong><span style=\"font-weight: 400;\"> and point at the destination\u2014results in NPCs getting stuck, walking through walls, or oscillating helplessly when blocked. Real navigation requires actual pathfinding.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The Pathfinding module implements A* search, which is standard in game development but relatively rare in OpenSim scripts. It\u2019s computationally expensive, so I\u2019ve had to optimize carefully for LSL\u2019s constraints.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">What makes it work is dynamic obstacle detection. Instead of pre-calculated navigation meshes, the Senses module continuously feeds the Pathfinding module with current object positions. If someone moves furniture, paths automatically recalculate. If a door opens or closes, the system adapts.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">One specific challenge was wall versus furniture classification. The system needs to distinguish between \u201cthis is a wall I can\u2019t pass through\u201d and \u201cthis is a chair I might want to sit in.\u201d I solved this through a multi-layered approach: keyword analysis (checking object names and descriptions), dimensional analysis (measuring aspect ratios), and type-based classification.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This matters because misclassification causes bizarre behavior. An NPC trying to walk through a cabinet or sit on a wall looks broken, not intelligent.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The pathfinding also detects portals\u2014open doorways between rooms. By casting rays in 16 directions at multiple distances and measuring gap widths, the system finds openings and verifies they\u2019re actually passable (an NPC needs more than 0.5 meters to fit through).<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Making_gestures_matter\"><\/span><b>Making gestures matter<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">An NPC that stands perfectly still while talking feels robotic. Real communication involves body language.<\/span><\/p>\n<figure id=\"attachment_79175\" aria-describedby=\"caption-attachment-79175\" style=\"width: 440px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-79175 lazyload\" src=\"https:\/\/www.hypergridbusiness.com\/wp-content\/uploads\/2025\/12\/Darin-Murphy-what_dephina_smiles-440x350.jpg\" alt=\"\" width=\"440\" height=\"350\" srcset=\"https:\/\/www.hypergridbusiness.com\/wp-content\/uploads\/2025\/12\/Darin-Murphy-what_dephina_smiles-440x350.jpg 440w, https:\/\/www.hypergridbusiness.com\/wp-content\/uploads\/2025\/12\/Darin-Murphy-what_dephina_smiles-188x150.jpg 188w, https:\/\/www.hypergridbusiness.com\/wp-content\/uploads\/2025\/12\/Darin-Murphy-what_dephina_smiles-768x612.jpg 768w, https:\/\/www.hypergridbusiness.com\/wp-content\/uploads\/2025\/12\/Darin-Murphy-what_dephina_smiles-465x370.jpg 465w, https:\/\/www.hypergridbusiness.com\/wp-content\/uploads\/2025\/12\/Darin-Murphy-what_dephina_smiles-628x500.jpg 628w, https:\/\/www.hypergridbusiness.com\/wp-content\/uploads\/2025\/12\/Darin-Murphy-what_dephina_smiles.jpg 1281w\" data-sizes=\"(max-width: 440px) 100vw, 440px\" style=\"--smush-placeholder-width: 440px; --smush-placeholder-aspect-ratio: 440\/350;\"\/><figcaption id=\"caption-attachment-79175\" class=\"wp-caption-text\">(Image courtesy Darin Murphy.)<\/figcaption><\/figure>\n<p><span style=\"font-weight: 400;\">I implemented a gesture system where the AI model learns to output special markers: <\/span><span style=\"font-weight: 400;\">%smile%<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">%wave%<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">%nod_head%<\/span><span style=\"font-weight: 400;\">, and compound gestures like <\/span><span style=\"font-weight: 400;\">%nod_head_smile%<\/span><span style=\"font-weight: 400;\">. The Chat module detects these markers, strips them from visible text, and sends gesture triggers to the Gestures module.<\/span><\/p>\n<blockquote>\n<p><span style=\"font-weight: 400;\">Processing Prompt (BLAS) (417 \/ 417 tokens)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Generating (24 \/ 100 tokens)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">(EOS token triggered! ID:2)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">(13:51:19) CtxLimit:1620\/4096, Amt:24\/100, Init:0.00s, Process:6.82s (61.18T\/s), Generate:6.81s (3.52T\/s), Total:13.63s<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Output:\u00a0 %smile% Thank you for your compliment! It\u2019s always wonderful to hear positive feedback from our guests.<\/span><\/p>\n<\/blockquote>\n<h3><span class=\"ez-toc-section\" id=\"The_configuration_philosophy\"><\/span><b>The configuration philosophy<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">One principle guided my entire design: non-programmers should be able to customize NPC behavior.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The framework uses configuration files instead of hard-coded values. A <strong>general.cfg<\/strong> file contains over 100 parameters\u2014timer settings, AI provider configurations, sensor ranges, pathfinding parameters, and movement speeds. All documented, with sensible defaults.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A <strong>personality.cfg<\/strong> file lets you define the NPC\u2019s character. This is essentially a system prompt that shapes how the AI responds. You can create a friendly shopkeeper, a stern gatekeeper, a scholarly librarian, or a cheerful tour guide. The personality file also specifies rules about gesture usage, conversation boundaries, and sensing constraints.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A third configuration file,<strong> seating.cfg<\/strong>, lets content creators assign priority scores to different furniture. Prefer NPCs to sit on benches over chairs? Configure it. Want them to avoid bar stools? Add a rule. This lets non-technical builders shape NPC behavior without touching code.<\/span><\/p>\n<figure id=\"attachment_79177\" aria-describedby=\"caption-attachment-79177\" style=\"width: 380px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-79177 lazyload\" src=\"https:\/\/www.hypergridbusiness.com\/wp-content\/uploads\/2025\/12\/Darin-Murphy-what_dephina_relaxing-380x350.jpg\" alt=\"\" width=\"380\" height=\"350\" srcset=\"https:\/\/www.hypergridbusiness.com\/wp-content\/uploads\/2025\/12\/Darin-Murphy-what_dephina_relaxing-380x350.jpg 380w, https:\/\/www.hypergridbusiness.com\/wp-content\/uploads\/2025\/12\/Darin-Murphy-what_dephina_relaxing-163x150.jpg 163w, https:\/\/www.hypergridbusiness.com\/wp-content\/uploads\/2025\/12\/Darin-Murphy-what_dephina_relaxing-768x707.jpg 768w, https:\/\/www.hypergridbusiness.com\/wp-content\/uploads\/2025\/12\/Darin-Murphy-what_dephina_relaxing-465x428.jpg 465w, https:\/\/www.hypergridbusiness.com\/wp-content\/uploads\/2025\/12\/Darin-Murphy-what_dephina_relaxing-543x500.jpg 543w, https:\/\/www.hypergridbusiness.com\/wp-content\/uploads\/2025\/12\/Darin-Murphy-what_dephina_relaxing.jpg 1104w\" data-sizes=\"(max-width: 380px) 100vw, 380px\" style=\"--smush-placeholder-width: 380px; --smush-placeholder-aspect-ratio: 380\/350;\"\/><figcaption id=\"caption-attachment-79177\" class=\"wp-caption-text\">(Image courtesy Darin Murphy.)<\/figcaption><\/figure>\n<h3><span class=\"ez-toc-section\" id=\"Why_this_matters\"><\/span><b>Why this matters<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Here\u2019s what struck me while building this: OpenSimulator has always positioned itself as the budget alternative to commercial virtual worlds. Lower cost, more control, more freedom. But that positioning came with a tradeoff. It has fewer features, less polish, and less sense of life.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Intelligent NPCs change that equation. Suddenly, an OpenSim grid can offer something that commercial platforms struggle with, which is NPCs built and customized by the community itself, shaped to fit specific use cases, deeply integrated with regional storytelling and design.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">An educational institution could create teaching assistants that actually answer student questions contextually. A roleplay community could populate its world with quest givers that adapt to player choices. A commercial grid could deploy NPCs that provide customer service or guidance.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The technical challenges are real. LSL has a 64KB memory limit per script, so careful optimization is necessary. Scaling multiple NPCs requires load distribution. But the core concept works.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Current_state_and_whats_next\"><\/span><b>Current state and what\u2019s next<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">I built this framework to answer a fundamental question: can we create intelligent NPCs at scale in OpenSimulator? The answer appears to be yes, at least for single NPCs and small groups.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The framework is production-ready for single-NPC deployments in various scenarios. I\u2019m currently testing it with multiple NPCs to identify scaling optimizations and measure actual performance under load.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Some features I\u2019m considering for future development:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Conversation memory \u2013 Storing interaction history so NPCs remember previous encounters with specific avatars<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Multi-NPC coordination \u2013 Allowing NPCs to be aware of each other and coordinate complex behaviors<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Voice synthesis \u2013 Giving NPCs actual spoken voices instead of just text<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Mood modeling \u2013 Tracking NPC emotional states that influence responses and behaviors<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Learning from interaction \u2013 Using feedback to improve navigation and social responses over time<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">But the most exciting possibilities come from the community. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">What happens when educators deploy NPCs for interactive learning? When artists create installations featuring characters with distinct personalities? When builders integrate them into complex, evolving storylines?<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Testing_and_real-world_feedback\"><\/span><b>Testing and real-world feedback<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">I\u2019m actively looking to understand whether there\u2019s genuine interest in this framework within the OpenSim community. The space is admittedly niche \u2014 virtual worlds are no longer a mainstream media topic \u2014 but within that niche, intelligent NPCs could be genuinely transformative.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">I\u2019m particularly interested in connecting with grid owners and educators who might want to test this. Real-world feedback on performance, use cases, and technical challenges would be invaluable. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">How do NPCs perform with multiple simultaneous conversations? What happens with dozens of visitors interacting with an NPC at once? Are there specific behaviors or interactions that developers actually want?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This information would help me understand what features matter most and where optimization should focus.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"The_bigger_picture\"><\/span><b>The bigger picture<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Building this framework gave me a perspective shift. Virtual worlds are often discussed in terms of their technical capabilities, such as avatar counts, region performance, and rendering fidelity. But what actually makes a world feel alive is the presence of intelligent inhabitants.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Second Life succeeded partly because bots and NPCs added texture to the experience, even when simple. OpenSimulator has never fully capitalized on this potential. The tools have always been there, but the technical barrier has been high.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If that barrier can be lowered, if grid owners can deploy intelligent, contextually-aware NPCs without becoming expert scripters, it opens possibilities for more immersive, responsive virtual spaces.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The question isn\u2019t whether we can build intelligent NPCs technically. We can. The question is whether there\u2019s enough community interest to make it worthwhile to continue developing, optimizing, and extending this particular framework.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">I built it because I had to know the answer. Now I\u2019m curious what others think.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The AI-Driven NPC Framework for OpenSimulator is currently in active development \u2014 check it out on GitHub \u2014 and I\u2019m exploring licensing models and seeking genuine community and educational interest to inform ongoing development priorities. If you\u2019re a grid owner, educator, or developer interested in intelligent NPCs for virtual worlds, contact me at <span class=\"__cf_email__\" data-cfemail=\"acc3dcc9c2dfc5c182c2dccf82cadecdc1c9dbc3dec7eccbc1cdc5c082cfc3c1\">(email\u00a0protected)<\/span> about your specific use cases and requirements.<\/span><\/p>\n<div class=\"abh_box abh_box_down abh_box_business\">\n<div class=\"abh_tab_content\">\n<section class=\"vcard author abh_about_tab abh_tab\" itemscope=\"\" itemprop=\"author\" itemtype=\"https:\/\/schema.org\/Person\" style=\"display:block\">\n<div class=\"abh_image\" itemscope=\"\" itemtype=\"https:\/\/schema.org\/ImageObject\"> <img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-250 photo lazyload\" width=\"64\" height=\"64\" src=\"https:\/\/www.hypergridbusiness.com\/wp-content\/uploads\/2025\/12\/Darin-Murphy-headshot.png\" style=\"--smush-placeholder-width: 64px; --smush-placeholder-aspect-ratio: 64\/64;\"\/> <\/div>\n<div class=\"abh_text\">\n<p>Darin Murphy has been working in the computer field all his life. His first experience with chatbots was ELIZA, and, since then, he&#8217;s tried out many others &#8212; and, most recently ChatGPT. He enjoys OpenSim, exploring AI, and playing games.<\/p>\n<\/div>\n<\/section>\n<section class=\"abh_posts_tab abh_tab\">\n<div class=\"abh_image\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-250 photo lazyload\" width=\"64\" height=\"64\" src=\"https:\/\/www.hypergridbusiness.com\/wp-content\/uploads\/2025\/12\/Darin-Murphy-headshot.png\" style=\"--smush-placeholder-width: 64px; --smush-placeholder-aspect-ratio: 64\/64;\"\/><\/div>\n<div class=\"abh_text\">\n<div class=\"abh_name\">Latest posts by Darin Murphy <span class=\"abh_allposts\">(see all)<\/span><\/div>\n<\/div>\n<\/section>\n<\/div><\/div>\n<\/p><\/div>\n<p><a href=\"https:\/\/www.hypergridbusiness.com\/2025\/12\/new-ai-driven-npcs-can-see-navigate-and-chat\/\"> Nuoroda \u012f informacijos \u0161altin\u012f <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I\u2019m a developer who\u2019s spent decades working with game engines and AI systems. And watching NPCs stand motionless in elaborate,&hellip;<\/p>\n","protected":false},"author":1,"featured_media":5523,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[186],"tags":[1379,869,8141,868,8140,8139],"class_list":["post-5623","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-virtuali-realybe","tag-aidriven","tag-business","tag-chat","tag-hypergrid","tag-navigate","tag-npcs"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>New AI-driven NPCs can see, navigate, and chat \u2013 Hypergrid Business - DizainoArkliukas.LT<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dizainoarkliukas.lt\/?p=5623\" \/>\n<meta property=\"og:locale\" content=\"lt_LT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"New AI-driven NPCs can see, navigate, and chat \u2013 Hypergrid Business - DizainoArkliukas.LT\" \/>\n<meta property=\"og:description\" content=\"I\u2019m a developer who\u2019s spent decades working with game engines and AI systems. And watching NPCs stand motionless in elaborate,&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dizainoarkliukas.lt\/?p=5623\" \/>\n<meta property=\"og:site_name\" content=\"DizainoArkliukas.LT\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-19T22:08:54+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minu\u010di\u0173\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/dizainoarkliukas.lt\/?p=5623#article\",\"isPartOf\":{\"@id\":\"https:\/\/dizainoarkliukas.lt\/?p=5623\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/dizainoarkliukas.lt\/#\/schema\/person\/df455e1ad6975b49e5033c007baf6d7c\"},\"headline\":\"New AI-driven NPCs can see, navigate, and chat \u2013 Hypergrid Business\",\"datePublished\":\"2025-12-19T22:08:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/dizainoarkliukas.lt\/?p=5623\"},\"wordCount\":2217,\"image\":{\"@id\":\"https:\/\/dizainoarkliukas.lt\/?p=5623#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dizainoarkliukas.lt\/wp-content\/uploads\/2025\/12\/New-AI-driven-NPCs-can-see-navigate-and-chat-\u2013-Hypergrid.jpg\",\"keywords\":[\"AIDriven\",\"Business\",\"chat\",\"Hypergrid\",\"navigate\",\"NPCs\"],\"articleSection\":[\"VIRTUALI REALYB\u0116\"],\"inLanguage\":\"lt-LT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dizainoarkliukas.lt\/?p=5623\",\"url\":\"https:\/\/dizainoarkliukas.lt\/?p=5623\",\"name\":\"New AI-driven NPCs can see, navigate, and chat \u2013 Hypergrid Business - DizainoArkliukas.LT\",\"isPartOf\":{\"@id\":\"https:\/\/dizainoarkliukas.lt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/dizainoarkliukas.lt\/?p=5623#primaryimage\"},\"image\":{\"@id\":\"https:\/\/dizainoarkliukas.lt\/?p=5623#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dizainoarkliukas.lt\/wp-content\/uploads\/2025\/12\/New-AI-driven-NPCs-can-see-navigate-and-chat-\u2013-Hypergrid.jpg\",\"datePublished\":\"2025-12-19T22:08:54+00:00\",\"author\":{\"@id\":\"https:\/\/dizainoarkliukas.lt\/#\/schema\/person\/df455e1ad6975b49e5033c007baf6d7c\"},\"breadcrumb\":{\"@id\":\"https:\/\/dizainoarkliukas.lt\/?p=5623#breadcrumb\"},\"inLanguage\":\"lt-LT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dizainoarkliukas.lt\/?p=5623\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"lt-LT\",\"@id\":\"https:\/\/dizainoarkliukas.lt\/?p=5623#primaryimage\",\"url\":\"https:\/\/dizainoarkliukas.lt\/wp-content\/uploads\/2025\/12\/New-AI-driven-NPCs-can-see-navigate-and-chat-\u2013-Hypergrid.jpg\",\"contentUrl\":\"https:\/\/dizainoarkliukas.lt\/wp-content\/uploads\/2025\/12\/New-AI-driven-NPCs-can-see-navigate-and-chat-\u2013-Hypergrid.jpg\",\"width\":469,\"height\":350},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/dizainoarkliukas.lt\/?p=5623#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/dizainoarkliukas.lt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"New AI-driven NPCs can see, navigate, and chat \u2013 Hypergrid Business\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/dizainoarkliukas.lt\/#website\",\"url\":\"https:\/\/dizainoarkliukas.lt\/\",\"name\":\"DizainoArkliukas.LT\",\"description\":\"Interneto technologijos, blok\u0173 grandin\u0117s, kripto turtas\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/dizainoarkliukas.lt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"lt-LT\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/dizainoarkliukas.lt\/#\/schema\/person\/df455e1ad6975b49e5033c007baf6d7c\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"lt-LT\",\"@id\":\"https:\/\/dizainoarkliukas.lt\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6323379efae0c70c686c7905444d6bbd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6323379efae0c70c686c7905444d6bbd?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/dizainoarkliukas.lt\"],\"url\":\"https:\/\/dizainoarkliukas.lt\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"New AI-driven NPCs can see, navigate, and chat \u2013 Hypergrid Business - DizainoArkliukas.LT","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dizainoarkliukas.lt\/?p=5623","og_locale":"lt_LT","og_type":"article","og_title":"New AI-driven NPCs can see, navigate, and chat \u2013 Hypergrid Business - DizainoArkliukas.LT","og_description":"I\u2019m a developer who\u2019s spent decades working with game engines and AI systems. And watching NPCs stand motionless in elaborate,&hellip;","og_url":"https:\/\/dizainoarkliukas.lt\/?p=5623","og_site_name":"DizainoArkliukas.LT","article_published_time":"2025-12-19T22:08:54+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"11 minu\u010di\u0173"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dizainoarkliukas.lt\/?p=5623#article","isPartOf":{"@id":"https:\/\/dizainoarkliukas.lt\/?p=5623"},"author":{"name":"admin","@id":"https:\/\/dizainoarkliukas.lt\/#\/schema\/person\/df455e1ad6975b49e5033c007baf6d7c"},"headline":"New AI-driven NPCs can see, navigate, and chat \u2013 Hypergrid Business","datePublished":"2025-12-19T22:08:54+00:00","mainEntityOfPage":{"@id":"https:\/\/dizainoarkliukas.lt\/?p=5623"},"wordCount":2217,"image":{"@id":"https:\/\/dizainoarkliukas.lt\/?p=5623#primaryimage"},"thumbnailUrl":"https:\/\/dizainoarkliukas.lt\/wp-content\/uploads\/2025\/12\/New-AI-driven-NPCs-can-see-navigate-and-chat-\u2013-Hypergrid.jpg","keywords":["AIDriven","Business","chat","Hypergrid","navigate","NPCs"],"articleSection":["VIRTUALI REALYB\u0116"],"inLanguage":"lt-LT"},{"@type":"WebPage","@id":"https:\/\/dizainoarkliukas.lt\/?p=5623","url":"https:\/\/dizainoarkliukas.lt\/?p=5623","name":"New AI-driven NPCs can see, navigate, and chat \u2013 Hypergrid Business - DizainoArkliukas.LT","isPartOf":{"@id":"https:\/\/dizainoarkliukas.lt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dizainoarkliukas.lt\/?p=5623#primaryimage"},"image":{"@id":"https:\/\/dizainoarkliukas.lt\/?p=5623#primaryimage"},"thumbnailUrl":"https:\/\/dizainoarkliukas.lt\/wp-content\/uploads\/2025\/12\/New-AI-driven-NPCs-can-see-navigate-and-chat-\u2013-Hypergrid.jpg","datePublished":"2025-12-19T22:08:54+00:00","author":{"@id":"https:\/\/dizainoarkliukas.lt\/#\/schema\/person\/df455e1ad6975b49e5033c007baf6d7c"},"breadcrumb":{"@id":"https:\/\/dizainoarkliukas.lt\/?p=5623#breadcrumb"},"inLanguage":"lt-LT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dizainoarkliukas.lt\/?p=5623"]}]},{"@type":"ImageObject","inLanguage":"lt-LT","@id":"https:\/\/dizainoarkliukas.lt\/?p=5623#primaryimage","url":"https:\/\/dizainoarkliukas.lt\/wp-content\/uploads\/2025\/12\/New-AI-driven-NPCs-can-see-navigate-and-chat-\u2013-Hypergrid.jpg","contentUrl":"https:\/\/dizainoarkliukas.lt\/wp-content\/uploads\/2025\/12\/New-AI-driven-NPCs-can-see-navigate-and-chat-\u2013-Hypergrid.jpg","width":469,"height":350},{"@type":"BreadcrumbList","@id":"https:\/\/dizainoarkliukas.lt\/?p=5623#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dizainoarkliukas.lt\/"},{"@type":"ListItem","position":2,"name":"New AI-driven NPCs can see, navigate, and chat \u2013 Hypergrid Business"}]},{"@type":"WebSite","@id":"https:\/\/dizainoarkliukas.lt\/#website","url":"https:\/\/dizainoarkliukas.lt\/","name":"DizainoArkliukas.LT","description":"Interneto technologijos, blok\u0173 grandin\u0117s, kripto turtas","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dizainoarkliukas.lt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"lt-LT"},{"@type":"Person","@id":"https:\/\/dizainoarkliukas.lt\/#\/schema\/person\/df455e1ad6975b49e5033c007baf6d7c","name":"admin","image":{"@type":"ImageObject","inLanguage":"lt-LT","@id":"https:\/\/dizainoarkliukas.lt\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6323379efae0c70c686c7905444d6bbd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6323379efae0c70c686c7905444d6bbd?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/dizainoarkliukas.lt"],"url":"https:\/\/dizainoarkliukas.lt\/?author=1"}]}},"jetpack_featured_media_url":"https:\/\/dizainoarkliukas.lt\/wp-content\/uploads\/2025\/12\/New-AI-driven-NPCs-can-see-navigate-and-chat-\u2013-Hypergrid.jpg","_links":{"self":[{"href":"https:\/\/dizainoarkliukas.lt\/index.php?rest_route=\/wp\/v2\/posts\/5623","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dizainoarkliukas.lt\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dizainoarkliukas.lt\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dizainoarkliukas.lt\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dizainoarkliukas.lt\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5623"}],"version-history":[{"count":0,"href":"https:\/\/dizainoarkliukas.lt\/index.php?rest_route=\/wp\/v2\/posts\/5623\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dizainoarkliukas.lt\/index.php?rest_route=\/wp\/v2\/media\/5523"}],"wp:attachment":[{"href":"https:\/\/dizainoarkliukas.lt\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5623"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dizainoarkliukas.lt\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5623"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dizainoarkliukas.lt\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5623"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}