Simulation Risk Analysis
curl --request POST \
--url https://api.vects.ai/api/v1/simulations/ \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "<string>",
"risk_analysis": {
"risk_analysis.enabled": true,
"risk_analysis.types": [
{}
],
"risk_analysis.resolution": "<string>",
"risk_analysis.time_window": {},
"risk_analysis.include_mitigation": true
},
"scenario_type": "<string>",
"settings": {},
"webhook_url": "<string>"
}
'import requests
url = "https://api.vects.ai/api/v1/simulations/"
payload = {
"prompt": "<string>",
"risk_analysis": {
"risk_analysis.enabled": True,
"risk_analysis.types": [{}],
"risk_analysis.resolution": "<string>",
"risk_analysis.time_window": {},
"risk_analysis.include_mitigation": True
},
"scenario_type": "<string>",
"settings": {},
"webhook_url": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: '<string>',
risk_analysis: {
'risk_analysis.enabled': true,
'risk_analysis.types': [{}],
'risk_analysis.resolution': '<string>',
'risk_analysis.time_window': {},
'risk_analysis.include_mitigation': true
},
scenario_type: '<string>',
settings: {},
webhook_url: '<string>'
})
};
fetch('https://api.vects.ai/api/v1/simulations/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vects.ai/api/v1/simulations/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'prompt' => '<string>',
'risk_analysis' => [
'risk_analysis.enabled' => true,
'risk_analysis.types' => [
[
]
],
'risk_analysis.resolution' => '<string>',
'risk_analysis.time_window' => [
],
'risk_analysis.include_mitigation' => true
],
'scenario_type' => '<string>',
'settings' => [
],
'webhook_url' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.vects.ai/api/v1/simulations/"
payload := strings.NewReader("{\n \"prompt\": \"<string>\",\n \"risk_analysis\": {\n \"risk_analysis.enabled\": true,\n \"risk_analysis.types\": [\n {}\n ],\n \"risk_analysis.resolution\": \"<string>\",\n \"risk_analysis.time_window\": {},\n \"risk_analysis.include_mitigation\": true\n },\n \"scenario_type\": \"<string>\",\n \"settings\": {},\n \"webhook_url\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.vects.ai/api/v1/simulations/")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"<string>\",\n \"risk_analysis\": {\n \"risk_analysis.enabled\": true,\n \"risk_analysis.types\": [\n {}\n ],\n \"risk_analysis.resolution\": \"<string>\",\n \"risk_analysis.time_window\": {},\n \"risk_analysis.include_mitigation\": true\n },\n \"scenario_type\": \"<string>\",\n \"settings\": {},\n \"webhook_url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vects.ai/api/v1/simulations/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"<string>\",\n \"risk_analysis\": {\n \"risk_analysis.enabled\": true,\n \"risk_analysis.types\": [\n {}\n ],\n \"risk_analysis.resolution\": \"<string>\",\n \"risk_analysis.time_window\": {},\n \"risk_analysis.include_mitigation\": true\n },\n \"scenario_type\": \"<string>\",\n \"settings\": {},\n \"webhook_url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"201": {},
"400": {},
"401": {},
"429": {},
"500": {},
"simulation_id": "<string>",
"status": "<string>",
"risk_assessment": {
"risk_assessment.overall_risk_level": "<string>",
"risk_assessment.risk_score": 123,
"risk_assessment.risk_zones": [
{}
],
"risk_assessment.threats": [
{}
],
"risk_assessment.vulnerabilities": [
{}
],
"risk_assessment.mitigation_strategies": [
{}
]
},
"safety_metrics": {
"safety_metrics.evacuation_time": 123,
"safety_metrics.bottlenecks": [
{}
],
"safety_metrics.capacity_utilization": 123,
"safety_metrics.accessibility_score": 123
},
"recommendations": [
{}
]
}Simulation APIs
Simulation Risk Analysis
Generate simulations with integrated risk assessment and safety analysis
POST
/
api
/
v1
/
simulations
/
Simulation Risk Analysis
curl --request POST \
--url https://api.vects.ai/api/v1/simulations/ \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "<string>",
"risk_analysis": {
"risk_analysis.enabled": true,
"risk_analysis.types": [
{}
],
"risk_analysis.resolution": "<string>",
"risk_analysis.time_window": {},
"risk_analysis.include_mitigation": true
},
"scenario_type": "<string>",
"settings": {},
"webhook_url": "<string>"
}
'import requests
url = "https://api.vects.ai/api/v1/simulations/"
payload = {
"prompt": "<string>",
"risk_analysis": {
"risk_analysis.enabled": True,
"risk_analysis.types": [{}],
"risk_analysis.resolution": "<string>",
"risk_analysis.time_window": {},
"risk_analysis.include_mitigation": True
},
"scenario_type": "<string>",
"settings": {},
"webhook_url": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: '<string>',
risk_analysis: {
'risk_analysis.enabled': true,
'risk_analysis.types': [{}],
'risk_analysis.resolution': '<string>',
'risk_analysis.time_window': {},
'risk_analysis.include_mitigation': true
},
scenario_type: '<string>',
settings: {},
webhook_url: '<string>'
})
};
fetch('https://api.vects.ai/api/v1/simulations/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vects.ai/api/v1/simulations/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'prompt' => '<string>',
'risk_analysis' => [
'risk_analysis.enabled' => true,
'risk_analysis.types' => [
[
]
],
'risk_analysis.resolution' => '<string>',
'risk_analysis.time_window' => [
],
'risk_analysis.include_mitigation' => true
],
'scenario_type' => '<string>',
'settings' => [
],
'webhook_url' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.vects.ai/api/v1/simulations/"
payload := strings.NewReader("{\n \"prompt\": \"<string>\",\n \"risk_analysis\": {\n \"risk_analysis.enabled\": true,\n \"risk_analysis.types\": [\n {}\n ],\n \"risk_analysis.resolution\": \"<string>\",\n \"risk_analysis.time_window\": {},\n \"risk_analysis.include_mitigation\": true\n },\n \"scenario_type\": \"<string>\",\n \"settings\": {},\n \"webhook_url\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.vects.ai/api/v1/simulations/")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"<string>\",\n \"risk_analysis\": {\n \"risk_analysis.enabled\": true,\n \"risk_analysis.types\": [\n {}\n ],\n \"risk_analysis.resolution\": \"<string>\",\n \"risk_analysis.time_window\": {},\n \"risk_analysis.include_mitigation\": true\n },\n \"scenario_type\": \"<string>\",\n \"settings\": {},\n \"webhook_url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vects.ai/api/v1/simulations/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"<string>\",\n \"risk_analysis\": {\n \"risk_analysis.enabled\": true,\n \"risk_analysis.types\": [\n {}\n ],\n \"risk_analysis.resolution\": \"<string>\",\n \"risk_analysis.time_window\": {},\n \"risk_analysis.include_mitigation\": true\n },\n \"scenario_type\": \"<string>\",\n \"settings\": {},\n \"webhook_url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"201": {},
"400": {},
"401": {},
"429": {},
"500": {},
"simulation_id": "<string>",
"status": "<string>",
"risk_assessment": {
"risk_assessment.overall_risk_level": "<string>",
"risk_assessment.risk_score": 123,
"risk_assessment.risk_zones": [
{}
],
"risk_assessment.threats": [
{}
],
"risk_assessment.vulnerabilities": [
{}
],
"risk_assessment.mitigation_strategies": [
{}
]
},
"safety_metrics": {
"safety_metrics.evacuation_time": 123,
"safety_metrics.bottlenecks": [
{}
],
"safety_metrics.capacity_utilization": 123,
"safety_metrics.accessibility_score": 123
},
"recommendations": [
{}
]
}Overview
The Simulation Risk Analysis API combines the power of text-to-3D simulation generation with comprehensive risk assessment capabilities. This endpoint creates realistic simulations while simultaneously analyzing potential threats, hazards, and safety concerns within the generated environment.Authentication
curl -X POST "https://api.vects.ai/api/v1/simulations/" \
-H "Authorization: Api-Key YOUR_API_KEY" \
-H "Content-Type: application/json"
curl -X POST "https://api.vects.ai/api/v1/simulations/" \
-H "Authorization: Token YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json"
Request Body
string
required
Natural language description of the simulation scenario with risk considerations
object
required
Risk analysis configuration
Show risk_analysis properties
Show risk_analysis properties
boolean
default:"true"
Enable integrated risk assessment
array
Risk types to analyze:
geopolitical, environmental, infrastructure, crime, traffic, weatherstring
default:"medium"
Analysis resolution:
low, medium, highobject
Time window for temporal risk analysis
boolean
default:"true"
Include risk mitigation recommendations
string
default:"general"
Scenario type:
emergency_response, urban_planning, security_assessment, disaster_simulation, generalobject
Simulation settings (same as standard simulation API)
string
Optional webhook URL for completion notifications
Example Requests
curl -X POST "https://api.vects.ai/api/v1/simulations/" \
-H "Authorization: Api-Key YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Simulate a building fire evacuation in a 20-story office complex during peak hours with emergency responders arriving",
"scenario_type": "emergency_response",
"risk_analysis": {
"enabled": true,
"types": ["environmental", "infrastructure", "traffic"],
"resolution": "high",
"include_mitigation": true
},
"settings": {
"max_agents": 500,
"simulation_duration": 900,
"environment_type": "indoor"
}
}'
curl -X POST "https://api.vects.ai/api/v1/simulations/" \
-H "Authorization: Api-Key YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Model pedestrian and vehicle flow around a new subway station entrance during rush hour",
"scenario_type": "urban_planning",
"risk_analysis": {
"enabled": true,
"types": ["traffic", "infrastructure", "crime"],
"resolution": "high",
"time_window": {
"start": "2024-01-15T07:00:00Z",
"end": "2024-01-15T09:00:00Z"
}
},
"settings": {
"max_agents": 800,
"simulation_duration": 7200
}
}'
curl -X POST "https://api.vects.ai/api/v1/simulations/" \
-H "Authorization: Api-Key YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Simulate crowd dynamics at a large outdoor concert venue with multiple entry/exit points and security checkpoints",
"scenario_type": "security_assessment",
"risk_analysis": {
"enabled": true,
"types": ["geopolitical", "crime", "infrastructure"],
"resolution": "high",
"include_mitigation": true
},
"settings": {
"max_agents": 1000,
"simulation_duration": 3600,
"environment_type": "outdoor"
}
}'
Response
The response includes all standard simulation fields plus comprehensive risk analysis data:string
Unique identifier for the created simulation
string
Current status:
queued, processing, completed, failedobject
Comprehensive risk analysis results
Show risk_assessment properties
Show risk_assessment properties
object
array
Actionable recommendations for improving safety and efficiency
Example Response
{
"simulation_id": "sim_risk_abc123",
"status": "completed",
"created_at": "2024-01-15T10:30:00Z",
"completed_at": "2024-01-15T10:38:15Z",
"prompt": "Simulate a building fire evacuation in a 20-story office complex during peak hours",
"scenario_type": "emergency_response",
"risk_assessment": {
"overall_risk_level": "high",
"risk_score": 0.75,
"risk_zones": [
{
"id": "zone_001",
"type": "bottleneck",
"location": {
"floor": 15,
"coordinates": [37.7749, -122.4194]
},
"risk_level": "critical",
"description": "Stairwell congestion causing evacuation delays",
"affected_agents": 45,
"estimated_delay": 180
},
{
"id": "zone_002",
"type": "structural",
"location": {
"floor": 8,
"coordinates": [37.7751, -122.4196]
},
"risk_level": "medium",
"description": "Potential structural weakness near fire source",
"confidence": 0.72
}
],
"threats": [
{
"id": "threat_001",
"type": "environmental",
"severity": "high",
"description": "Smoke propagation blocking primary exit routes",
"affected_floors": [12, 13, 14, 15],
"timeline": {
"onset": 120,
"peak": 300,
"duration": 600
}
},
{
"id": "threat_002",
"type": "infrastructure",
"severity": "medium",
"description": "Elevator system shutdown affecting mobility-impaired evacuation",
"affected_population": 12,
"alternative_routes": ["stairwell_a", "stairwell_c"]
}
],
"vulnerabilities": [
{
"id": "vuln_001",
"category": "evacuation_capacity",
"description": "Insufficient stairwell capacity for building occupancy",
"current_capacity": 800,
"required_capacity": 1200,
"severity": "high"
},
{
"id": "vuln_002",
"category": "communication",
"description": "Limited emergency communication systems on upper floors",
"affected_floors": [16, 17, 18, 19, 20],
"severity": "medium"
}
],
"mitigation_strategies": [
{
"id": "mitigation_001",
"type": "infrastructure",
"priority": "high",
"description": "Install additional emergency stairwell on east side",
"estimated_cost": 500000,
"implementation_time": "6 months",
"risk_reduction": 0.35
},
{
"id": "mitigation_002",
"type": "procedural",
"priority": "medium",
"description": "Implement phased evacuation protocol for upper floors",
"estimated_cost": 15000,
"implementation_time": "2 weeks",
"risk_reduction": 0.20
}
]
},
"safety_metrics": {
"evacuation_time": 1080,
"bottlenecks": [
{
"location": "stairwell_b_floor_15",
"severity": "critical",
"delay_time": 180,
"affected_agents": 45
},
{
"location": "main_lobby_exit",
"severity": "medium",
"delay_time": 60,
"affected_agents": 120
}
],
"capacity_utilization": 0.85,
"accessibility_score": 0.65
},
"recommendations": [
{
"category": "immediate",
"priority": "urgent",
"description": "Conduct emergency evacuation drill focusing on upper floor procedures",
"implementation_time": "1 week",
"cost": "low"
},
{
"category": "short_term",
"priority": "high",
"description": "Install emergency communication systems on floors 16-20",
"implementation_time": "1 month",
"cost": "medium"
},
{
"category": "long_term",
"priority": "high",
"description": "Add secondary emergency stairwell to reduce evacuation time",
"implementation_time": "6 months",
"cost": "high"
}
]
}
Scenario Types
Emergency Response
- Fire evacuations
- Natural disaster response
- Medical emergencies
- Hazmat incidents
Urban Planning
- Traffic flow analysis
- Pedestrian movement studies
- Public transportation impact
- Development impact assessment
Security Assessment
- Crowd control scenarios
- Event security planning
- Threat response evaluation
- Perimeter security analysis
Disaster Simulation
- Earthquake response
- Flood evacuation
- Hurricane preparation
- Infrastructure failure
Risk Analysis Features
Real-time Threat Detection
- Dynamic threat identification during simulation
- Adaptive risk scoring based on evolving conditions
- Predictive threat modeling
Multi-layered Analysis
- Individual agent risk assessment
- Group dynamics risk evaluation
- Infrastructure vulnerability analysis
- Environmental hazard modeling
Temporal Risk Modeling
- Time-based risk evolution
- Peak risk period identification
- Long-term risk trend analysis
Mitigation Planning
- Automated mitigation strategy generation
- Cost-benefit analysis of interventions
- Implementation timeline recommendations
Integration with Other APIs
Combine with Route Risk Analysis
// First, analyze route risks
const routeRisk = await analyzeRouteRisk(evacuationRoute);
// Then create simulation with risk context
const simulation = await createRiskSimulation({
prompt: "Emergency evacuation following the analyzed route",
risk_analysis: {
enabled: true,
baseline_risks: routeRisk.threats,
resolution: "high"
}
});
Enhance with MARL Real-time Data
// Use MARL WebSocket for real-time risk updates
ws.onmessage = (event) => {
const message = JSON.parse(event.data);
if (message.type === 'update_flee_status') {
// Update risk assessment based on agent behavior
updateRiskAssessment(message.payload);
}
};
Status Codes
Created
Simulation with risk analysis successfully queued
Bad Request
Invalid request parameters or risk analysis configuration
Unauthorized
Invalid or missing API key
Too Many Requests
Rate limit exceeded
Internal Server Error
Server error during simulation or risk analysis
Best Practices
- Scenario-Specific Configuration: Choose appropriate risk types for your scenario
- Resolution vs Performance: Higher resolution provides more detail but takes longer
- Temporal Considerations: Include time windows for time-sensitive scenarios
- Mitigation Planning: Enable mitigation recommendations for actionable insights
- Iterative Refinement: Use results to refine subsequent simulations
Next Steps
- Review Route Risk Analysis for complementary risk assessment
- Explore Urban Mobility MARL for real-time risk monitoring
- Check Simulation Results for accessing complete risk data