How jacquescarette/drasil works
Drasil is a framework for generating coherent software artifacts from domain knowledge for well-understood scientific domains. Its principal workflow is to capture domain concepts and design decisions, then render different views—such as specifications, documentation, and programs—from that shared knowledge, preserving traceability between them. The README also highlights example-driven case studies and generated examples across several scientific domains. The available source excerpts mostly show generated programs and vendored numerical-library code, not Drasil’s generator internals, so the generator-stage links below reflect README documentation rather than inspected implementation calls.
Main entry points: code Case studies · stable Generated programs · swift/main.swift Glass-BR · swift/main.swift Projectile analysis
Components 17
Domain knowledge
- Domain concepts
code - Design rationale
code
Artifact generation
- Artifact views
code - Traceability
code - Specifications
code - Documentation
code - Generated programs
code/stable - Generated tests
code
Case studies
- Case studies
code - Glass-BR
code/stable/glassbr/src/swift/main.swift - Projectile analysis
code/stable/projectile/projectile_m_p_nol_b_u_v_d/src/swift/main.swift - Solar water heating
code - Physics and pendulums
code - Slope stability
code - PD controller
code - HGHC example
People/Steve/hghc_expanded_example/code/src/main.c
Other components
- Software engineer
Connections 18
- Software engineer → Domain concepts: defines
- Software engineer → Design rationale: records
- Case studies → Domain concepts: ground in
- Domain concepts → Artifact views: render as
- Design rationale → Artifact views: inform
- Artifact views → Specifications: generate
- Artifact views → Documentation: generate
- Artifact views → Generated programs: generate
- Artifact views → Generated tests: generate
- Traceability → Specifications: relate
- Traceability → Generated programs: relate
- Case studies → Glass-BR: includes
- Case studies → Projectile analysis: includes
- Case studies → Solar water heating: includes
- Case studies → Physics and pendulums: includes
- Case studies → Slope stability: includes
- Case studies → PD controller: includes
- Case studies → HGHC example: includes