Nix flake packaging CityJSON tools:
| Package | Description |
|---|---|
val3dity |
Validate 3D city models |
cjval |
Validate CityJSON files and extensions |
cjseq |
Process CityJSONSeq streams |
cjio |
CityJSON I/O and manipulation (Python) |
flatcitybuf |
FlatBuffers-based CityJSON format |
Drop into a shell with all tools on PATH:
nix develop github:3DGI/3dgeo-flakeOr add a shell.nix / flake.nix to your project (see below).
Add individual tools like:
nix profile add --refresh github:3DGI/3dgeo-flake#packages.x86_64-linux.flatcitybufWhere the last part (<sytem>.<package>) is one of:
└───packages
├───aarch64-darwin
│ ├───cjio: package 'python3.13-cjio-0.10.1'
│ ├───cjseq: package 'cjseq-0.3.1'
│ ├───cjval: package 'cjval-0.8.4'
│ ├───flatcitybuf: package 'flatcitybuf-0.7.4'
│ └───val3dity: package 'val3dity-2.6.3'
├───aarch64-linux
│ ├───cjio: package 'python3.13-cjio-0.10.1'
│ ├───cjseq: package 'cjseq-0.3.1'
│ ├───cjval: package 'cjval-0.8.4'
│ ├───flatcitybuf: package 'flatcitybuf-0.7.4'
│ └───val3dity: package 'val3dity-2.6.3'
├───x86_64-darwin
│ ├───cjio: package 'python3.13-cjio-0.10.1'
│ ├───cjseq: package 'cjseq-0.3.1'
│ ├───cjval: package 'cjval-0.8.4'
│ ├───flatcitybuf: package 'flatcitybuf-0.7.4'
│ └───val3dity: package 'val3dity-2.6.3'
└───x86_64-linux
├───cjio: package 'python3.13-cjio-0.10.1'
├───cjseq: package 'cjseq-0.3.1'
├───cjval: package 'cjval-0.8.4'
├───flatcitybuf: package 'flatcitybuf-0.7.4'
└───val3dity: package 'val3dity-2.6.3'
nix build github:3DGI/3dgeo-flake#cjval
./result/bin/cjval --help{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
geodev.url = "github:3DGI/3dgeo-flake";
};
outputs = { nixpkgs, geodev, ... }:
let
system = "aarch64-darwin"; # adjust as needed
pkgs = nixpkgs.legacyPackages.${system};
in
{
devShells.${system}.default = pkgs.mkShell {
# merge all 3dgeo tools into your shell; adds them to 'packages'
inputsFrom = [ geodev.devShells.${system}.default ];
# add your own packages alongside
packages = with pkgs; [ gdal ];
};
};
}To use individual packages instead of the whole devshell:
packages = [
geodev.packages.${system}.cjval
geodev.packages.${system}.cjseq
];