Appearance
SILVIA Core API Reference
Version: 3.1
Namespace: CognitiveCode.Silvia.Api
The Foundation: Deterministic AI Infrastructure
SILVIA Core is the foundation of the entire SILVIA AI execution platform - a production-grade, deterministic AI engine designed for deploying auditable artificial intelligence from IoT devices to cloud-scale infrastructure. Unlike probabilistic AI systems that introduce uncertainty, SILVIA Core provides guaranteed execution, complete auditability, and sub-millisecond response times across all deployment scenarios.
From Edge to Enterprise: A Universal AI Platform
SILVIA Core powers AI deployments across the full technology spectrum:
EDGE DEVICES → IOT NETWORKS → ENTERPRISE SYSTEMS → CLOUD SCALE
↓ ↓ ↓ ↓
Deterministic Real-Time Multi-Tenant Kubernetes
Execution Responses Authentication OrchestrationEdge Computing: Embedded AI with predictable memory footprint and zero network dependencies
IoT Integration: Real-time sensor fusion, telemetry processing, and device coordination
Enterprise Systems: Multi-user support, session management, and secure execution
Cloud Deployments: Horizontal scaling, load balancing, and distributed coordination
Why SILVIA Core Matters
Traditional AI systems are black boxes - you provide input, receive output, and hope the result is correct. SILVIA Core is different:
- 100% Auditable: Every decision, every execution path, every variable state is traceable
- Deterministic: Same input always produces same output - critical for regulated industries
- Performance Optimized: Sub-millisecond inference with predictable latency characteristics
- Resource Efficient: Runs on constrained devices while scaling to cloud infrastructure
- Production Ready: Battle-tested in defense, healthcare, finance, and industrial control systems
Core Platform Capabilities
The SilviaCore class and SilviaCoreManager static manager provide:
- Multi-Instance Management: Run thousands of isolated AI cores concurrently
- Variable State Management: Persistent, type-safe variable storage with $ prefix convention
- Timed Execution Engine: Scheduled callbacks, periodic tasks, and temporal event management
- Inter-Core Communication: Coordinator sensors for distributed AI coordination
- Fixed Update Loop: Unity-compatible physics-synchronized execution
- Thread-Safe Operations: Multi-threaded request processing for server environments
- API Subsystem Access: Gateway to all SILVIA specialized APIs (Brain, Sensors, Database, etc.)
- High-Precision Timing: Microsecond-accurate scheduling for real-time applications
Modern Use Cases
Healthcare AI: Patient monitoring systems with auditable decision trails for FDA compliance
Financial Trading: Algorithmic trading bots with guaranteed execution and regulatory audit logs
Industrial Control: Factory automation with deterministic safety interlocks and real-time response
Defense Systems: Mission-critical AI with verified behavior and complete operational transparency
Autonomous Vehicles: Sensor fusion and decision-making with provable safety characteristics
Smart Home/IoT: Distributed intelligence across device networks with synchronized coordination
Gaming & Simulation: High-performance NPC AI with deterministic replay and testing capability
Enterprise Chatbots: Multi-tenant conversational AI with user isolation and session management
Core Architecture Overview
The Three-Layer System
┌─────────────────────────────────────────────────────────────┐
│ SilviaCoreManager (Static) │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ • Multi-Core Lifecycle Management ││
│ │ • Inter-Core Broadcasting & Communication ││
│ │ • Coordinator Sensors (Cross-Core Data Sharing) ││
│ │ • Global Timer Coordination ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘
│
├──► SilviaCore Instance 1 (User: "Alice")
│ ├──► ApiBrain() - Inference Engine
│ ├──► ApiSensors() - Real-Time Telemetry, Datastores
│ ├──► ApiUser() - User Management
│ └──► [15+ Specialized APIs]
│
├──► SilviaCore Instance 2 (User: "Bob")
│ └──► [Full API Stack]
│
└──► SilviaCore Instance N (User: "System")
└──► [Full API Stack]Core Initialization Pattern
csharp
// 1. CREATE CORE INSTANCE
SilviaCore core = SilviaCoreManager.CreateCore(
userName: "Production_System",
fileName: "brains/production_v2.sil",
boot: true,
voiceTimer: false
);
// 2. MARK AS ACTIVE
core.SetCreated();
// 3. CONFIGURE CORE BEHAVIOR
core.SetActive(true);
core.EnableHighPrecisionTiming(true);
// 4. ACCESS SUBSYSTEMS
var brain = core.ApiBrain();
var sensors = core.ApiSensors();
// 5. EXECUTE AI LOGIC
string response = brain.GetResponse("Initialize production monitoring");SilviaCoreManager API Reference
The SilviaCoreManager is a static class providing global lifecycle management for all SILVIA Core instances in your application. Think of it as the "kernel" that manages multiple AI engines.
Core Instance Management
CreateCore() - Multiple Overloads
Creates and initializes a new SILVIA Core instance. Critical for all SILVIA operations.
Standard Creation (Brain File)
csharp
public static SilviaCore CreateCore(
string userName,
string fileName,
bool boot,
bool voiceTimer = false
)Parameters:
userName: Unique identifier for this core instance (used for multi-user systems)fileName: Path to.silbrain file, ornullfor empty coreboot: Iftrue, executes behaviors in "boot" group after loadingvoiceTimer: Enable voice timing calculations for speech synthesis
Returns: SilviaCore instance, or null if creation failed
Example:
csharp
// Production server with loaded brain
SilviaCore productionCore = SilviaCoreManager.CreateCore(
"ProductionBot_01",
"brains/customer_service.sil",
boot: true,
voiceTimer: false
);
// Development core - empty brain for testing
SilviaCore devCore = SilviaCoreManager.CreateCore(
"DevTest",
null, // No brain file
boot: false,
voiceTimer: false
);Advanced Creation (Binary Stream)
csharp
public static SilviaCore CreateCore(
string userName,
BinaryReader brainStream,
string stopwords,
string scriptClassType,
string internalScriptClassName,
string licensePath,
object o
)Parameters:
brainStream: Pre-loaded brain data as BinaryReader (for embedded resources)stopwords: Comma-separated stopwords for linguistic processingscriptClassType: Script engine type (default: "C#")internalScriptClassName: Internal script class namelicensePath: Path to license fileo: Optional target object reference
Example:
csharp
// Load brain from embedded resource
using (Stream stream = Assembly.GetExecutingAssembly()
.GetManifestResourceStream("MyApp.Resources.brain.sil"))
using (BinaryReader reader = new BinaryReader(stream))
{
SilviaCore core = SilviaCoreManager.CreateCore(
"EmbeddedSystem",
reader,
"the,a,an,is,are", // Stopwords
null, // Default C# scripts
null, // Default script class
"license.key",
null
);
}CoreExists()
Checks if a core instance exists for a given user.
csharp
public static bool CoreExists(string userName)Example:
csharp
if (SilviaCoreManager.CoreExists("SessionUser_42")) {
// Core already created, reuse it
var existingCore = SilviaCoreManager.GetCore("SessionUser_42");
} else {
// Create new core for this session
var newCore = SilviaCoreManager.CreateCore("SessionUser_42", "default.sil", true);
}GetCore() - Retrieve Existing Instance
Retrieves an existing core by username or unique ID.
By Username:
csharp
public static SilviaCore GetCore(string userName)By UID:
csharp
public static SilviaCore GetCore(Int64 uid)Example:
csharp
// Multi-tenant web service
public string ProcessUserRequest(string userId, string input) {
SilviaCore userCore = SilviaCoreManager.GetCore(userId);
if (userCore == null) {
// First request from this user - create core
userCore = SilviaCoreManager.CreateCore(userId, "default_brain.sil", true);
}
return userCore.ApiBrain().GetResponse(input, null);
}ReleaseCore() - Cleanup and Disposal
Properly releases a core instance, executing exit behaviors and cleaning up resources.
By Core Reference:
csharp
public static bool ReleaseCore(SilviaCore core)By Username:
csharp
public static bool ReleaseCore(string userName)By UID:
csharp
public static bool ReleaseCore(Int64 uid)Example:
csharp
// Session cleanup
public void OnUserLogout(string userId) {
SilviaCore userCore = SilviaCoreManager.GetCore(userId);
if (userCore != null) {
// Execute any "exit" behaviors (save state, cleanup)
userCore.ApiBrain().SetJump("exit", "exit", 1.0f);
// Give it time to complete
System.Threading.Thread.Sleep(100);
// Release resources
SilviaCoreManager.ReleaseCore(userCore);
}
}ReleaseAllCores()
Releases all active core instances. Use with caution in production environments.
csharp
public static bool ReleaseAllCores()Example:
csharp
// Application shutdown
public void OnApplicationShutdown() {
Console.WriteLine("Shutting down all AI cores...");
bool success = SilviaCoreManager.ReleaseAllCores();
if (success) {
Console.WriteLine("All cores released successfully.");
}
}SetCoreFileName()
Updates the brain file path associated with a core (for logging/tracking purposes).
csharp
public static bool SetCoreFileName(SilviaCore core, string fileName)Inter-Core Communication: Coordinator Sensors
Coordinator sensors enable cross-core data sharing without direct coupling. Perfect for distributed AI systems where multiple cores need to coordinate.
CreateCoordinatorSensor()
Creates a shared sensor accessible by all cores.
csharp
public static bool CreateCoordinatorSensor(
string sensorId,
SensorDataType dataType,
SensorDirection direction,
ConnectionType connectionType,
string connectionData
)Example:
csharp
// Shared temperature sensor for all building AI cores
SilviaCoreManager.CreateCoordinatorSensor(
sensorId: "building_ambient_temp",
dataType: SensorDataType.Float,
direction: SensorDirection.InputOnly,
connectionType: ConnectionType.Network,
connectionData: "192.168.1.100:8080"
);
// Now all cores can read this sensor value
// Core 1: HVAC control AI
// Core 2: Energy optimization AI
// Core 3: Occupancy comfort AISetCoordinatorSensorValue()
Updates a coordinator sensor value (broadcast to all cores).
csharp
public static bool SetCoordinatorSensorValue<T>(string sensorId, T value)Example:
csharp
// Master control system updates shared state
SilviaCoreManager.SetCoordinatorSensorValue("system_status", "NORMAL");
SilviaCoreManager.SetCoordinatorSensorValue("threat_level", 0);
SilviaCoreManager.SetCoordinatorSensorValue("active_users", 1523);
// All subordinate AI cores can now access these valuesActivateCoordinatorSensors() / DeactivateCoordinatorSensors()
Controls whether coordinator sensors are actively updating.
csharp
public static bool ActivateCoordinatorSensors()
public static bool DeactivateCoordinatorSensors()UpdateCoordinatorSensors()
Manually triggers an update of all coordinator sensors.
csharp
public static bool UpdateCoordinatorSensors()Example:
csharp
// Main system loop
while (systemRunning) {
// Update shared sensor data
SilviaCoreManager.UpdateCoordinatorSensors();
// Each core can now access latest values
Thread.Sleep(100);
}GetCoordinatorSensorCount() / GetCoordinatorSensorIds()
Query coordinator sensor system state.
csharp
public static int GetCoordinatorSensorCount()
public static string[] GetCoordinatorSensorIds()Broadcasting: One-to-Many Communication
BroadcastText()
Sends a text message to all active cores.
csharp
public static bool BroadcastText(string message)Example:
csharp
// System-wide notification
SilviaCoreManager.BroadcastText("MAINTENANCE MODE ACTIVATED");
// All cores receive this in their text output streamsBroadcastVoice()
Sends a voice message to all active cores.
csharp
public static bool BroadcastVoice(string message)Example:
csharp
// Emergency announcement to all AI-driven systems
SilviaCoreManager.BroadcastVoice("Emergency shutdown initiated. Save all states.");SilviaCore API Reference
The SilviaCore class represents an individual AI engine instance. Each core maintains its own:
- Brain state (behaviors, concepts, scripts)
- Variable storage (persistent key-value store)
- Timed functions (scheduled callbacks)
- API subsystem instances
Core Lifecycle & State
SetCreated()
Marks the core as fully initialized and ready for use.
csharp
public void SetCreated()Example:
csharp
SilviaCore core = SilviaCoreManager.CreateCore("User1", "brain.sil", true);
core.SetCreated(); // Required after creationSetActive()
Enables or disables the core for processing.
csharp
public void SetActive(bool active)Example:
csharp
// Pause AI during maintenance
core.SetActive(false);
// Processing expensive operation...
Thread.Sleep(5000);
// Resume AI
core.SetActive(true);Variable Management System
SILVIA's variable system provides type-safe, persistent state management with a simple convention:
- User Variables: Start with
$(e.g.,$player_health,$inventory_count) - System Variables: Start with
$_(e.g.,$_afor AI name,$_ufor user name) - Sensor Variables: Start with
$@(e.g.,$@temperature,$@pressure)
Variables can store multiple values (pipe-separated) and support random retrieval for dynamic behavior.
SetVariable() - String, Int, Float
Sets a variable value with optional additive mode.
String Variable:
csharp
public bool SetVariable(string name, string value, bool additive = false)Integer Variable:
csharp
public bool SetVariable(string name, int value, bool additive = false)Float Variable:
csharp
public bool SetVariable(string name, float value, bool additive = false)Parameters:
name: Variable name (must start with$)value: Value to storeadditive: Iftrue, appends to existing values (pipe-separated)
Example:
csharp
// Simple string storage
core.SetVariable("$player_name", "Alice");
core.SetVariable("$current_level", "Forest_Temple");
// Numeric variables
core.SetVariable("$health", 100);
core.SetVariable("$score", 15000);
core.SetVariable("$multiplier", 1.5f);
// Multi-value variables (additive mode)
core.SetVariable("$inventory", "sword", false); // Initial value
core.SetVariable("$inventory", "shield", true); // Add second item
core.SetVariable("$inventory", "potion", true); // Add third item
// Result: $inventory = "sword|shield|potion"
// System variables
core.SetVariable("$_a", "MyAssistant"); // AI name
core.SetVariable("$_u", "Player1"); // User nameModern Use Cases:
csharp
// IoT Device Status
core.SetVariable("$device_status", "ONLINE");
core.SetVariable("$last_reading", DateTime.Now.ToString());
core.SetVariable("$battery_level", 87.5f);
// E-Commerce Session
core.SetVariable("$cart_total", 149.99f);
core.SetVariable("$item_count", 3);
core.SetVariable("$promo_code", "SAVE20");
// Medical Device
core.SetVariable("$patient_id", "P-2024-1523");
core.SetVariable("$heart_rate", 72);
core.SetVariable("$systolic_bp", 118);
core.SetVariable("$diastolic_bp", 76);GetVariable() / GetString() / GetInt() / GetFloat()
Retrieves variable values with automatic type conversion.
Get as String:
csharp
public string GetVariable(string name, bool random_result = false)
public string GetString(string name, bool random_result = false)Get as Integer:
csharp
public int GetInt(string name, bool random_result = false)Get as Float:
csharp
public float GetFloat(string name, bool random_result = false)Parameters:
name: Variable name to retrieverandom_result: Iftrueand variable has multiple values, returns random value
Example:
csharp
// Simple retrieval
string playerName = core.GetVariable("$player_name");
int health = core.GetInt("$health");
float multiplier = core.GetFloat("$multiplier");
// Multi-value variables
core.SetVariable("$weapon", "sword", false);
core.SetVariable("$weapon", "axe", true);
core.SetVariable("$weapon", "bow", true);
// Get random weapon each time
string weapon1 = core.GetString("$weapon", true); // "axe"
string weapon2 = core.GetString("$weapon", true); // "sword"
string weapon3 = core.GetString("$weapon", true); // "bow"
// Real-world: Dynamic NPC dialogue
core.SetVariable("$greeting", "Hello there!", false);
core.SetVariable("$greeting", "Greetings, traveler!", true);
core.SetVariable("$greeting", "Good to see you!", true);
string npcGreeting = core.GetString("$greeting", true); // Random each timeError Handling:
csharp
// Safe integer conversion
int value = core.GetInt("$invalid_number"); // Returns -1 on error
// Error message pushed to diagnostic output
// Check for null
string name = core.GetVariable("$nonexistent");
if (name == null) {
Console.WriteLine("Variable does not exist");
}SetVariables() - Batch Operations
Sets multiple variables simultaneously from name/value pair array.
csharp
public bool SetVariables(string[] nameValuePairs)Example:
csharp
// Batch configuration
core.SetVariables(new string[] {
"$server_url", "https://api.example.com",
"$api_key", "sk-abc123xyz",
"$timeout_ms", "5000",
"$max_retries", "3",
"$enable_caching", "true"
});
// Game state initialization
core.SetVariables(new string[] {
"$level", "1",
"$health", "100",
"$mana", "50",
"$gold", "0",
"$experience", "0"
});CopyVariable()
Copies all values from one variable to another.
csharp
public bool CopyVariable(string source, string destination)Example:
csharp
// Backup current state
core.CopyVariable("$current_state", "$previous_state");
// Duplicate configuration
core.CopyVariable("$default_settings", "$user_settings");RemoveFromVariable()
Removes a specific value from a multi-value variable.
csharp
public bool RemoveFromVariable(string name, string value)Example:
csharp
// Inventory system
core.SetVariable("$inventory", "sword|shield|potion|torch");
// Player uses potion
core.RemoveFromVariable("$inventory", "potion");
// Result: $inventory = "sword|shield|torch"ClearTrainerVariables() / ClearSensorVariables()
Bulk variable cleanup operations.
csharp
public bool ClearTrainerVariables() // Clears all $ variables (keeps $_ system vars)
public bool ClearSensorVariables() // Clears all $@ sensor variablesExample:
csharp
// Reset user session but keep system state
core.ClearTrainerVariables();
// System variables like $_a, $_u preserved
// User variables like $score, $inventory cleared
// Sensor cleanup
core.ClearSensorVariables(); // Removes $@temp, $@pressure, etc.Timed Functions: Scheduled Execution
SILVIA's timer system enables scheduled callbacks with microsecond precision, critical for:
- Periodic sensor polling
- Timeout handling
- Scheduled AI behaviors
- Game loops and physics updates
- Heartbeat monitoring
- Rate limiting
AddTimedFunctionCS()
Schedules a C# method for delayed execution.
csharp
public int AddTimedFunctionCS(string name, double time, bool periodic)Parameters:
name: Method name in brain scripts (must match exactly)time: Delay in seconds (supports fractional seconds)periodic: Iftrue, repeats everytimeseconds
Returns: Integer ID of the timed function
Method Signature Required:
csharp
public bool MethodName(int id) {
// Your code here
return true; // Must return bool
}Example:
csharp
// One-time delayed execution
int timerId = core.AddTimedFunctionCS("CheckSensorStatus", 5.0, false);
// Executes once after 5 seconds
// Periodic execution (heartbeat)
int heartbeatId = core.AddTimedFunctionCS("SendHeartbeat", 1.0, true);
// Executes every 1 second
// In your brain script:
public bool CheckSensorStatus(int id) {
string status = _core.ApiSensors().GetSensorValue<string>("system_status");
_core.ApiApp().SetTextOutput($"Status check: {status}");
return true;
}
public bool SendHeartbeat(int id) {
_core.ApiSensors().ExecuteDatabaseNonQuery(
"INSERT INTO heartbeats (timestamp) VALUES (@ts)",
new[] { "@ts", DateTime.Now.ToString() }
);
return true;
}Modern Use Cases:
csharp
// Timeout handler for user response
core.ApiBrain().GetResponse("Would you like to continue?");
int timeoutId = core.AddTimedFunctionCS("HandleNoResponse", 30.0, false);
// If no response in 30 seconds, execute timeout behavior
// Real-time monitoring
core.AddTimedFunctionCS("MonitorCpuUsage", 0.5, true);
core.AddTimedFunctionCS("MonitorMemory", 1.0, true);
core.AddTimedFunctionCS("MonitorDiskIO", 5.0, true);
// Game loop updates
core.AddTimedFunctionCS("UpdateEnemyAI", 0.016, true); // ~60 FPS
core.AddTimedFunctionCS("UpdatePhysics", 0.020, true); // 50 HzAddVariableTimedFunction()
Schedules a function with random interval between min and max time.
csharp
public int AddVariableTimedFunction(
string name,
double minTime,
double maxTime,
bool periodic
)Example:
csharp
// NPC behavior: Check surroundings every 3-7 seconds (variable)
core.AddVariableTimedFunction("NPC_LookAround", 3.0, 7.0, true);
// Random event spawner: 10-30 seconds
core.AddVariableTimedFunction("SpawnRandomEvent", 10.0, 30.0, true);
// Variable heartbeat (network jitter)
core.AddVariableTimedFunction("SendNetworkPing", 0.9, 1.1, true);RemoveTimedFunctionCS() - Cancel Timers
Cancels a scheduled function by name or ID.
By Name:
csharp
public bool RemoveTimedFunctionCS(string name)By ID:
csharp
public bool RemoveTimedFunctionIDCS(int id)By ID Array:
csharp
public bool RemoveTimedFunctionsByIDs(int[] ids)Example:
csharp
// User responds before timeout
int timeoutId = core.AddTimedFunctionCS("HandleTimeout", 30.0, false);
// User provides input
string userInput = GetUserInput();
if (!string.IsNullOrEmpty(userInput)) {
// Cancel timeout since user responded
core.RemoveTimedFunctionIDCS(timeoutId);
core.ApiBrain().GetResponse(userInput);
}
// Cancel all monitoring timers
int[] monitorIds = new int[] { cpuTimerId, memTimerId, diskTimerId };
core.RemoveTimedFunctionsByIDs(monitorIds);Timer Inspection & Control
Query and modify active timed functions.
Get Active Timers:
csharp
public string[] GetActiveTimedFunctionNames()
public int[] GetActiveTimedFunctionIDs()
public double[] GetActiveTimedFunctionsPeriods()
public double[] GetActiveTimedFunctionsMinPeriods()
public bool[] GetActiveTimedFunctionsArePeriodic()
public double[] GetActiveTimedFunctionsEndTimes()Modify Timers:
csharp
// Change period
public bool SetActiveTimedFunctionPeriod(string name, double period)
public bool SetActiveTimedFunctionPeriod(int id, double period)
// Change min period (variable timers)
public bool SetActiveTimedFunctionMinPeriod(string name, double period)
public bool SetActiveTimedFunctionMinPeriod(int id, double period)
// Change both min and max (variable timers)
public bool SetActiveTimedFunctionVariability(
string name,
double minPeriod,
double period
)
// Toggle periodic mode
public bool SetActiveTimedFunctionPeriodic(string name, bool periodic)
// Change next execution time
public bool SetActiveTimedFunctionEndTime(string name, double newEndTime)
public double GetActiveTimedFunctionEndTime(string name)Example:
csharp
// Adaptive polling based on system load
if (cpuUsage > 80) {
// Slow down polling under high load
core.SetActiveTimedFunctionPeriod("MonitorCpu", 2.0);
} else {
// Normal polling rate
core.SetActiveTimedFunctionPeriod("MonitorCpu", 0.5);
}
// Debug: List all active timers
string[] timerNames = core.GetActiveTimedFunctionNames();
double[] periods = core.GetActiveTimedFunctionsPeriods();
for (int i = 0; i < timerNames.Length; i++) {
Console.WriteLine($"{timerNames[i]}: {periods[i]} seconds");
}Timer Lifecycle Management
PauseTimers() / ResumeTimers()
Globally pause/resume all timed functions.
csharp
public void PauseTimers()
public void ResumeTimers()
public bool PausedTimers()Example:
csharp
// Pause during maintenance
core.PauseTimers();
PerformDatabaseMaintenance();
core.ResumeTimers();
// Check state
if (core.PausedTimers()) {
Console.WriteLine("Timers are paused");
}RefreshTimers() / RefreshTimersSeconds()
Manually trigger timer updates (usually handled automatically).
csharp
public bool RefreshTimers(long ticks)
public bool RefreshTimersSeconds(double seconds)Example:
csharp
// Manual timer tick in custom game loop
while (gameRunning) {
long currentTicks = DateTime.Now.Ticks;
core.RefreshTimers(currentTicks);
RenderFrame();
ProcessInput();
}Fixed Update Loop (Unity Integration)
For Unity-based applications or physics-synchronized execution.
SetFixedUpdateInterval()
Sets the fixed update interval in seconds.
csharp
public void SetFixedUpdateInterval(float seconds)Example:
csharp
// Match Unity's FixedUpdate (50 Hz)
core.SetFixedUpdateInterval(0.02f);AddFixedUpdateCallback() / RemoveFixedUpdateCallback()
Registers/unregisters callbacks for fixed updates.
csharp
public bool AddFixedUpdateCallback(Action method)
public bool RemoveFixedUpdateCallback(Action method)Example:
csharp
// Physics-synchronized AI
void UpdatePhysicsAI() {
// Called at fixed intervals
ProcessPhysicsBasedAI();
}
core.AddFixedUpdateCallback(UpdatePhysicsAI);
// Later: remove callback
core.RemoveFixedUpdateCallback(UpdatePhysicsAI);StartFixedUpdate() / ShutdownFixedUpdate()
Controls the fixed update loop.
csharp
public void StartFixedUpdate()
public void ShutdownFixedUpdate()
public void ClearFixedUpdateCallbacks()High-Precision Timing
EnableHighPrecisionTiming()
Enables microsecond-accurate timing for real-time systems.
csharp
public void EnableHighPrecisionTiming(bool enabled)Example:
csharp
// Industrial control system requiring precise timing
core.EnableHighPrecisionTiming(true);
// Schedule sub-millisecond tasks
core.AddTimedFunctionCS("SampleSensor", 0.001, true); // 1ms samplingResponse Timing Utilities
Track input/output timing for latency monitoring.
csharp
public float GetLastInputTime() // Seconds since last input
public float GetLastResponseTime() // Seconds since last response
public bool ResetLastInputTime()
public bool ResetLastResponseTime()Example:
csharp
// Latency monitoring
core.ApiBrain().GetResponse(userInput);
float responseTime = core.GetLastResponseTime();
if (responseTime > 1.0f) {
Console.WriteLine($"WARNING: Slow response ({responseTime}s)");
}GetResponseManaged() - Unified Input Processing
The primary entry point for processing user input with full SILVIA feature support.
csharp
public bool GetResponseManaged(string input)Features:
- Addressing System:
@!silvia,@!agent,@!human,?@!return_address - CLI Commands: Input starting with
$>processed as SILVIA LIVE commands - Normal Inference: Standard brain processing for conversation
- Output Queuing: Results accessible via
ApiApp().GetTextOutput(), etc.
Examples:
Standard Conversation:
csharp
core.GetResponseManaged("What is the weather today?");
string response = core.ApiApp().GetTextOutput();
// Response queued in text/voice output stacksCLI Commands:
csharp
core.GetResponseManaged("$> status");
core.GetResponseManaged("$> live on");
core.GetResponseManaged("$> learn behavior greet,hello {a:text:hello}{e:text:Hi there!}");Addressing Protocol:
csharp
// Address SILVIA specifically
core.GetResponseManaged("@!silvia What is your name?");
// Address agent (LLM), return to human
core.GetResponseManaged("@!agent ?@!human Explain quantum computing");
// Multi-recipient addressing
core.GetResponseManaged("@!silvia @!agent Coordinate response on topic X");API Subsystem Access
The core provides centralized access to all SILVIA specialized APIs.
Primary APIs:
csharp
public SilviaApiBrain ApiBrain() // Inference engine
public SilviaApiApp ApiApp() // Output management
public SilviaApiMem ApiMem() // Brain file operations
public SilviaApiData ApiData() // Data utilities
public SilviaApiFeedback ApiFeedback() // Conversational memoryEnterprise APIs:
csharp
public SilviaApiUser ApiUser() // User management
public SilviaApiSensors ApiSensors() // Sensor & Database integrations
public SilviaApiSensorsZeroAlloc ApiSensorsZeroAlloc() // High-perf sensorsSpecialized APIs:
csharp
public SilviaApiML ApiML() // Machine learning
public SilviaApiBallistics ApiBallistics() // Physics calculations
public SilviaApiLogistics ApiLogistics() // Optimization algorithms
public SilviaApiFinance ApiFinance() // Financial operations
public SilviaApiNavigation ApiNavigation() // Pathfinding
public SilviaApiComponents ApiComponents() // Component system
public SilviaApiMeshNet ApiMeshNet() // Distributed networking
public SilviaApiNavajo ApiNavajo() // Encryption
public SilviaApiModding ApiModding() // Plugin system
public SilviaApiInterface ApiInterface() // UI abstractionsExample:
csharp
// Access multiple subsystems
var brain = core.ApiBrain();
var sensors = core.ApiSensors();
var database = core.ApiSensors().GetSensor("masterDB");
// Coordinated operation
float temp = sensors.GetSensorValue<float>("warehouse_temp");
if (temp > 30.0f) {
string alert = brain.GetResponse("Temperature critical");
database.ExecuteNonQuery(
"INSERT INTO alerts (message, timestamp) VALUES (@msg, @ts)",
new[] { "@msg", alert, "@ts", DateTime.Now.ToString() }
);
}API Usage Tracking
Monitor API call volume for billing, debugging, or performance analysis.
csharp
public void EnableApiTracking(bool enabled)
public void SetApiTrackingUser(string userName)
public int GetTotalApiCalls()Example:
csharp
// Enable tracking for this core
core.EnableApiTracking(true);
core.SetApiTrackingUser("CustomerTenant_42");
// Process operations...
core.ApiBrain().GetResponse(input);
core.ApiSensors().ExecuteDatabaseQuery("SELECT * FROM users");
// Check call volume
int totalCalls = core.GetTotalApiCalls();
Console.WriteLine($"Total API calls: {totalCalls}");SilviaMultiThread - Thread-Safe Processing
For server environments with concurrent request processing.
csharp
public class SilviaMultiThread
{
public SilviaMultiThread(SilviaCore core)
public void SetInput(string input)
public void GetResponse() // Call from worker thread
public string GetOutput()
public bool IsLocked()
}Example:
csharp
// Thread-safe request processor
public class AIRequestHandler {
private SilviaCore _core;
private Queue<SilviaMultiThread> _processors;
public string ProcessRequest(string input) {
// Get thread-safe wrapper
SilviaMultiThread mt = new SilviaMultiThread(_core);
mt.SetInput(input);
// Process in background thread
Thread worker = new Thread(() => mt.GetResponse());
worker.Start();
// Wait for completion
while (mt.IsLocked()) {
Thread.Sleep(10);
}
return mt.GetOutput();
}
}Best Practices & Patterns
1. Multi-Tenant Isolation
csharp
public class MultiTenantAIService {
private Dictionary<string, SilviaCore> _userCores = new();
public string ProcessUserInput(string userId, string input) {
// Create or retrieve user-specific core
if (!_userCores.ContainsKey(userId)) {
SilviaCore userCore = SilviaCoreManager.CreateCore(
userId,
"tenant_brain.sil",
boot: true
);
userCore.SetCreated();
_userCores[userId] = userCore;
}
SilviaCore core = _userCores[userId];
return core.ApiBrain().GetResponse(input, null);
}
public void CleanupInactiveUsers(TimeSpan maxIdle) {
List<string> toRemove = new();
foreach (var kvp in _userCores) {
float lastInput = kvp.Value.GetLastInputTime();
if (lastInput > maxIdle.TotalSeconds) {
SilviaCoreManager.ReleaseCore(kvp.Value);
toRemove.Add(kvp.Key);
}
}
foreach (string userId in toRemove) {
_userCores.Remove(userId);
}
}
}2. Distributed System Coordination
csharp
// Master control core
SilviaCore masterCore = SilviaCoreManager.CreateCore("MasterControl", "master.sil", true);
// Create coordinator sensors for distributed state
SilviaCoreManager.CreateCoordinatorSensor(
"system_state", SensorDataType.String,
SensorDirection.InputOutput, ConnectionType.Memory, ""
);
SilviaCoreManager.CreateCoordinatorSensor(
"active_alerts", SensorDataType.Int,
SensorDirection.InputOutput, ConnectionType.Memory, ""
);
// Subordinate cores
SilviaCore buildingCore1 = SilviaCoreManager.CreateCore("Building1", "building.sil", true);
SilviaCore buildingCore2 = SilviaCoreManager.CreateCore("Building2", "building.sil", true);
// Master updates shared state
SilviaCoreManager.SetCoordinatorSensorValue("system_state", "NORMAL");
SilviaCoreManager.SetCoordinatorSensorValue("active_alerts", 0);
// All subordinate cores can now access this shared state
// Each operates independently but with coordinated awareness3. Adaptive Timer Management
csharp
public class AdaptiveMonitoring {
private SilviaCore _core;
private int _cpuMonitorId;
public void StartAdaptiveMonitoring() {
_cpuMonitorId = _core.AddTimedFunctionCS("MonitorCPU", 1.0, true);
}
// In brain script
public bool MonitorCPU(int id) {
float cpuUsage = GetSystemCPUUsage();
// Adapt polling rate based on load
if (cpuUsage > 80.0f) {
// High load: reduce polling frequency
_core.SetActiveTimedFunctionPeriod(id, 5.0);
} else if (cpuUsage < 20.0f) {
// Low load: increase polling frequency
_core.SetActiveTimedFunctionPeriod(id, 0.5);
} else {
// Normal load: standard frequency
_core.SetActiveTimedFunctionPeriod(id, 1.0);
}
return true;
}
}4. Graceful Shutdown Pattern
csharp
public class AISystemManager {
public void ShutdownAllSystems() {
Console.WriteLine("Initiating graceful shutdown...");
// 1. Pause all timer activity
foreach (var core in GetAllCores()) {
core.PauseTimers();
}
// 2. Execute exit behaviors
SilviaCoreManager.BroadcastText("SHUTDOWN INITIATED");
Thread.Sleep(500); // Allow exit behaviors to execute
// 3. Save critical state
foreach (var core in GetAllCores()) {
string userId = core.GetVariable("$_u");
core.ApiMem().Save($"state/{userId}.sil", null);
}
// 4. Release resources
bool success = SilviaCoreManager.ReleaseAllCores();
Console.WriteLine($"Shutdown complete: {success}");
}
}5. Error Resilience
csharp
public class ResilientAIService {
private SilviaCore _core;
public string SafeGetResponse(string input) {
try {
// Attempt normal processing
string response = _core.ApiBrain().GetResponse(input, null);
if (string.IsNullOrEmpty(response)) {
// Fallback: use default behavior
_core.ApiBrain().SetJump("default", "fallback", 1.0f);
response = _core.ApiApp().GetTextOutput();
}
return response;
} catch (Exception ex) {
// Log error
_core.ApiApp().SetDiagOutput($"ERROR: {ex.Message}");
// Attempt core recovery
if (!RecoverCore()) {
// Full reset required
ReinitializeCore();
}
return "I apologize, but I encountered an error. Please try again.";
}
}
private bool RecoverCore() {
try {
_core.ClearTrainerVariables();
_core.ApiBrain().SetJump("boot", "boot", 1.0f);
return true;
} catch {
return false;
}
}
private void ReinitializeCore() {
string userId = _core.GetVariable("$_u");
SilviaCoreManager.ReleaseCore(_core);
_core = SilviaCoreManager.CreateCore(userId, "brain.sil", true);
_core.SetCreated();
}
}Platform Integration Examples
IoT Edge Device
csharp
// Raspberry Pi temperature control
SilviaCore deviceCore = SilviaCoreManager.CreateCore(
"ThermostatDevice_01",
"thermostat_brain.sil",
boot: true,
voiceTimer: false
);
deviceCore.SetCreated();
deviceCore.EnableHighPrecisionTiming(true);
// Fast sensor sampling
deviceCore.ApiSensors().CreateSensor(
"room_temp",
SensorDataType.Float,
SensorDirection.InputOnly,
ConnectionType.GPIO,
"GPIO_PIN_17"
);
// Periodic control logic (100ms)
deviceCore.AddTimedFunctionCS("UpdateHeating", 0.1, true);
// In brain script:
public bool UpdateHeating(int id) {
float currentTemp = _core.ApiSensors().GetSensorValue<float>("room_temp");
float targetTemp = _core.GetFloat("$target_temperature");
if (currentTemp < targetTemp - 0.5f) {
// Turn on heating
_core.SetVariable("$heater_state", "ON");
} else if (currentTemp > targetTemp + 0.5f) {
// Turn off heating
_core.SetVariable("$heater_state", "OFF");
}
return true;
}Cloud-Scale Microservice
csharp
// ASP.NET Core API endpoint
[ApiController]
[Route("api/ai")]
public class AIController : ControllerBase {
private static SilviaCore _sharedCore;
static AIController() {
_sharedCore = SilviaCoreManager.CreateCore(
"APIService",
"api_brain.sil",
boot: true
);
_sharedCore.SetCreated();
}
[HttpPost("query")]
public async Task<IActionResult> ProcessQuery([FromBody] QueryRequest request) {
// Thread-safe processing
SilviaMultiThread mt = new SilviaMultiThread(_sharedCore);
mt.SetInput(request.Query);
await Task.Run(() => mt.GetResponse());
while (mt.IsLocked()) {
await Task.Delay(10);
}
return Ok(new { response = mt.GetOutput() });
}
}Unity Game Integration
csharp
using UnityEngine;
using CognitiveCode.Silvia.Api;
public class NPCAIController : MonoBehaviour {
private SilviaCore _npcCore;
void Start() {
_npcCore = SilviaCoreManager.CreateCore(
$"NPC_{gameObject.name}",
"npc_brain.sil",
boot: true
);
_npcCore.SetCreated();
// Sync with Unity physics
_npcCore.SetFixedUpdateInterval(Time.fixedDeltaTime);
_npcCore.AddFixedUpdateCallback(UpdateAI);
_npcCore.StartFixedUpdate();
// Store Unity references
_npcCore.SetVariable("$npc_position", transform.position.ToString());
}
void UpdateAI() {
// Called at fixed intervals, synced with physics
float playerDistance = Vector3.Distance(
transform.position,
PlayerController.Instance.transform.position
);
_npcCore.SetVariable("$player_distance", playerDistance);
// Let AI decide behavior
if (playerDistance < 10.0f) {
string action = _npcCore.ApiBrain().GetResponse("Player nearby");
ExecuteNPCAction(action);
}
}
void OnDestroy() {
_npcCore.ShutdownFixedUpdate();
SilviaCoreManager.ReleaseCore(_npcCore);
}
}Performance Considerations
Memory Footprint
- Minimal Core: ~2-5 MB per instance (empty brain)
- Typical Application: 10-50 MB per instance (loaded brain with behaviors)
- Large Knowledge Base: 100-500 MB per instance (extensive brain files)
Execution Performance
- Variable Access: < 10 microseconds
- Timer Scheduling: < 50 microseconds
- Brain Inference: 0.1-5 milliseconds (depends on brain complexity)
- Multi-core Coordination: < 1 millisecond overhead
Scaling Guidelines
- Single Server: 100-1000 concurrent cores (depending on brain complexity)
- Kubernetes: Horizontal scaling with core-per-pod or multi-core-per-pod patterns
- Edge Devices: 1-10 cores per device (ARM processors)
Troubleshooting
Core Creation Fails
csharp
SilviaCore core = SilviaCoreManager.CreateCore("User1", "brain.sil", true);
if (core == null) {
// Check license file
// Check brain file path
// Check if core already exists
if (SilviaCoreManager.CoreExists("User1")) {
core = SilviaCoreManager.GetCore("User1");
}
}Timer Not Firing
csharp
// Ensure core is active
core.SetActive(true);
// Check if timers are paused
if (core.PausedTimers()) {
core.ResumeTimers();
}
// Verify method signature matches:
public bool MethodName(int id) { return true; }Variable Not Found
csharp
string value = core.GetVariable("$my_var");
if (value == null) {
// Variable doesn't exist - set it first
core.SetVariable("$my_var", "default_value");
}High Memory Usage
csharp
// Periodic cleanup
core.ClearTrainerVariables();
core.ClearSensorVariables();
// Remove unused timers
int[] activeIds = core.GetActiveTimedFunctionIDs();
foreach (int id in activeIds) {
// Remove if no longer needed
}See Also
- ApiBrain Reference - Inference engine and behavior control
- ApiSensors Reference - Real-time telemetry and IoT integration
- SILVIA LIVE CLI - Live training and debugging system
Documentation Status
Version: SILVIA Core 3.1
Released: November 2025
This documentation has been comprehensively reviewed and validated against the source code. All methods in the SILVIA Core API include:
- XML documentation comments in source code
- Complete parameter descriptions
- Return value specifications
- Usage examples where applicable
© Copyright Cognitive Code Corp. 2007-2026
SILVIA is a registered Trademark of Cognitive Code Corp.

