Skip to content

A JSON-based, open file format for defining the structure of buildings — rooms, walls, floors, doors, and devices — for use in home automation, simulation, and visualization.

Notifications You must be signed in to change notification settings

wischner/openplan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

status.badge language.badge standard.badge

openplan

openplan is a C++ library and XML-based file format for describing building structure — rooms, walls, floors, doors, and devices — for use in home automation, simulation, and visualization. it is compatible with open street map simple indoor tagging and the JOSM tool.

Prerequisites

To build the project, you need:

  • A C++17 compiler (e.g. g++ or clang++)
  • CMake 3.10 or newer
  • pkg-config
  • Cairo development libraries (for drawing floor plans)
  • Git (to fetch dependencies)

On Debian/Ubuntu, install dependencies with:

sudo apt install build-essential cmake pkg-config libcairo2-dev

Build instructions

Clone the repository and build using CMake:

git clone https://github.com/your-username/openplan.git
cd openplan
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build

This will:

  • Build the core openplan_lib library
  • Build the openplan main program (if present)
  • Build and run the unit tests using Google Test

To run tests:

cd build
ctest

Output formats

The library can render floor plans using Cairo to various formats:

  • PNG (bitmap image)
  • PDF
  • SVG
  • PostScript

License

This project is licensed under the MIT License.

Copyright

© 2025 Tomaz Stih. All rights reserved.

About

A JSON-based, open file format for defining the structure of buildings — rooms, walls, floors, doors, and devices — for use in home automation, simulation, and visualization.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published