How afontana1/fault-tree works
faulttree is a visual fault-tree modeling and probability-analysis application: users construct an event/gate graph, choose a top event and analysis method, submit the model, and inspect the resulting probability and solver details. The graph follows the frontend request into API validation and solver dispatch, then shows the model-to-expression and analysis layers. Solver capabilities are documented in the README; source excerpts for several solver implementations and frontend request helpers were not sampled, so their internal wiring is omitted.
Main entry points: main.py FastAPI Routes · App.tsx Builder App · graph.py Fault Tree Graph · interfaces.py Solver Contracts
Components 23
Model Builder UI
- Builder App
frontend/src/App.tsx - Model Toolbar
frontend/src/components/Toolbar.tsx - Graph Canvas
frontend/src/App.tsx - Node Inspector
frontend/src/components/Inspector.tsx - Config Builder
frontend/src/faulttree/buildConfig.ts - API Client
frontend/src/api.ts - Results Panel
frontend/src/components/ResultsPanel.tsx
API Service
- FastAPI Routes
src/app/main.py - Request Schemas
src/app/schemas.py - Solve Response
src/app/schemas.py
Fault Tree Model
- Config Loader
src/faulttree/core/config.py - Fault Tree Graph
src/faulttree/core/graph.py - Event Primitives
src/faulttree/core/events.py - Gate Primitives
src/faulttree/core/gates.py - Dependency Primitives
src/faulttree/core/dependencies.py - Boolean Expressions
src/faulttree/core/expr.py - DSL Schema Export
src/faulttree/core/schema_export.py
Analysis Solvers
- Solver Contracts
src/faulttree/solvers/interfaces.py - BDD Exact Solver
src/faulttree/solvers/bdd.py - Closed-Form Solver
src/faulttree/solvers/closed_form.py - Cut-Set Solver
src/faulttree/solvers/cut_sets.py - Monte Carlo Solver
src/faulttree/solvers/monte_carlo.py
Other components
- Modeler
Connections 34
- Modeler → Model Toolbar: sets options
- Modeler → Graph Canvas: edits graph
- Graph Canvas → Builder App: updates state
- Model Toolbar → Builder App: invokes actions
- Builder App → Node Inspector: passes selection
- Node Inspector → Builder App: updates node
- Builder App → Config Builder: builds config
- Builder App → API Client: submits request
- API Client → FastAPI Routes: HTTP request
- FastAPI Routes → Request Schemas: parses body
- FastAPI Routes → Config Loader: loads config
- Config Loader → Fault Tree Graph: constructs model
- Fault Tree Graph → Event Primitives: uses event types
- Fault Tree Graph → Gate Primitives: uses gate types
- Fault Tree Graph → Dependency Primitives: expands dependencies
- FastAPI Routes → Fault Tree Graph: validates model
- FastAPI Routes → DSL Schema Export: serves DSL schema
- FastAPI Routes → Solver Contracts: builds solve request
- FastAPI Routes → BDD Exact Solver: dispatches method
- FastAPI Routes → Closed-Form Solver: dispatches method
- FastAPI Routes → Cut-Set Solver: dispatches method
- FastAPI Routes → Monte Carlo Solver: dispatches method
- BDD Exact Solver → Fault Tree Graph: translates model
- Fault Tree Graph → Boolean Expressions: produces expression
- BDD Exact Solver → Boolean Expressions: builds decision diagram
- BDD Exact Solver → Solver Contracts: returns result
- Closed-Form Solver → Solver Contracts: returns result
- Cut-Set Solver → Solver Contracts: returns result
- Monte Carlo Solver → Solver Contracts: returns result
- Solver Contracts → Solve Response: provides result
- Solve Response → FastAPI Routes: serializes response
- FastAPI Routes → API Client: returns response
- API Client → Builder App: resolves result
- Builder App → Results Panel: shows output