I am the author of some software libraries and a sporadic hacker/contributor to other open-source projects.

arcgrid: Haskell support for ESRI/ArcInfo (ArcGrid) raster GIS files

Parser for proprietary ESRI/ArcInfo (ArcGrid) files widely used by many geographics-related software (GIS) to represent elevations or other terrain features.

Only ASCII GRID (.asc) files are supported at the moment.

clos: Probabilistic combined line-of-sight (LOS) on discrete grids

Combined Line-of-Sight (LOS) with non-deterministic and deterministic detection models for abstract discrete grids.

elint: Type-safe modelling of intelligence gathering

Haskell library that deals with uncertain and incompleteinformation in a type-safe manner. The library makes it easier and safer to manage various intelligence data (as in military intelligence) properties such as:

  • incompleteness of information (when only parts of the whole are known)
  • uncertainty of information (analytic confidence statements orprobabilities)
  • degradation (aging) of the information
  • priorities and choices between similar intelligence reports (deduction of thebest report among all available)
  • bulk-processing and incorporation of heterogenous intelligence data

meshview: Library for quick visualization and simulation of arbitrary 3D mesh data

Haskell library for quick visualization and simulation of arbitrary 3D mesh data.

FPS-like (WASD style) keyboard & mouse controls are supported; the user can view/roam the dynamic 3D-scene and explore the loaded meshes in perspective.

Only .stl and .obj files (models) are supported for now, as well as some basic affine transformations like rotations and translations. Objects with the same name are added (uploaded to the GPU) only once.

opcon: Abstract DAG containers for dynamic, echeloned military hierarchies

Small Haskell library for creating, querying and manipulating echeloned military hierarchies.

The hierarchy is modelled as DAG (Directed Acyclic Graph), with:

  • vertices containing the user data (i.e., a unit or some organization)
  • edges being typed echelon uplinks to higher headquarters

Two types of echeloned uplink connections are supported: the organic and the OPCON (Operational Control) connections.

  1. The organic command means that the sub-organization is a natural (e.g. doctrinal) part of the whole unit (i.e. 1st, 2nd and 3rd fire platoons of a company).
  2. The OPCON link means that the sub-organization is attached only temporarily and is not a part of the unit’s standard outfit (i.e. a recon or support unit given to a reinforced battalion).

The library provides both functional and monadic (state) combinators to work with the hierarchies.

concept

rea: Resource-Entity-Action design pattern for declarative descriptions of RTS games

High-performance, purely functional, minimalistic DSL implementation of the Resource-Entity-Action pattern. The pattern was originally conceived as a generalization of Real Time Strategy games, but the abstraction suits also well for other types of discrete simulations.

Based on the ideas proposed in research paper Resource Entity Action: A Generalized Design Pattern for RTS games, by Abbadi, Mohamed & Di Giacomo and others.

wego: Patch-based client/server architecture for WEGO simulations