Skip to main content
Glama

bulc_open_evac_viewer

Visualize evacuation simulation results in 3D with timeline playback to analyze agent movement and building safety performance.

Instructions

Open the 3D evacuation result viewer window. Displays agents on the building model with timeline playback.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
evacPathNoPath to .evac file. Default: auto-detect from last simulation
objPathNoPath to .obj 3D model file. Default: auto-detect
autoPlayNoStart playback automatically. Default: false
playbackSpeedNoPlayback speed multiplier (0.25 to 8.0). Default: 1.0
agentScaleNoAgent display scale (0.5 to 5.0). Default: 1.0

Implementation Reference

  • Handler case for 'bulc_open_evac_viewer': validates input schema and sends 'open_evac_viewer' action command to BULC client.
    case "bulc_open_evac_viewer": { const validated = OpenEvacViewerSchema.parse(args); result = await client.sendCommand({ action: "open_evac_viewer", params: validated, }); break; }
  • Zod input validation schema for bulc_open_evac_viewer tool.
    const OpenEvacViewerSchema = z.object({ evacPath: z.string().optional(), objPath: z.string().optional(), autoPlay: z.boolean().optional(), playbackSpeed: z.number().min(0.25).max(8.0).optional(), agentScale: z.number().min(0.5).max(5.0).optional(), });
  • MCP tool registration/definition for bulc_open_evac_viewer including description and input schema.
    { name: "bulc_open_evac_viewer", description: "Open the 3D evacuation result viewer window. " + "Displays agents on the building model with timeline playback.", inputSchema: { type: "object" as const, properties: { evacPath: { type: "string", description: "Path to .evac file. Default: auto-detect from last simulation", }, objPath: { type: "string", description: "Path to .obj 3D model file. Default: auto-detect", }, autoPlay: { type: "boolean", description: "Start playback automatically. Default: false", }, playbackSpeed: { type: "number", description: "Playback speed multiplier (0.25 to 8.0). Default: 1.0", }, agentScale: { type: "number", description: "Agent display scale (0.5 to 5.0). Default: 1.0", }, }, }, annotations: { readOnlyHint: false, destructiveHint: false, }, },
  • src/index.ts:40-51 (registration)
    Aggregates evacTools (including bulc_open_evac_viewer) into allTools for MCP ListTools response.
    const allTools = [ ...contextTools, // 8 tools: spatial context, home info, levels, undo/redo, save ...roomTools, // 5 tools: create, create_polygon, list, modify, delete ...wallTools, // 5 tools: create, create_rectangle, list, modify, delete ...furnitureTools, // 5 tools: catalog, place, list, modify, delete ...fdsDataTools, // 7 tools: get, fire_source, detector, sprinkler, hvac, thermocouple, clear ...meshTools, // 5 tools: list, create, auto, modify, delete ...simulationTools, // 4 tools: get_settings, time, output, ambient ...fdsRunTools, // 6 tools: preview, validate, export, run, status, stop ...resultTools, // 5 tools: open_viewer, list_datasets, point_data, aset, report ...evacTools, // 25 tools: setup, stairs, agents, run, results, advanced features ];
  • src/index.ts:135-137 (registration)
    Routes tool calls matching 'bulc_*evac*' (including bulc_open_evac_viewer) to handleEvacTool.
    if (name.startsWith("bulc_") && name.includes("evac")) { return await handleEvacTool(name, safeArgs); }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/using76/BULC_MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server