This repository contains the source code of the interactive customizer for the Concavum v2, a fully parametric split keyboard featuring an ergonomic layout with ortholinear (non-staggered) columns and concave key wells.
The customizer allows for changing all kinds of parameters like the number of columns, rows and thumb keys, the curvature, the distance between keys and many more. It generates 3D printing files for the case, a PCB for connecting the key switches and configuration files for the keyboard firmware.
To get started, head over to the latest release and download the executable for your operating system. If your operating system is not supported or you want to run the latest development version instead, follow the instructions in the next section.
Note
For Linux, the file dialogs require a compatible XDG Desktop Portal backend to function correctly. If the load/save/export buttons do not seem to work, you might need to install a different backend.
Start by cloning the repository and installing rust. Run the customizer using the following:
cargo run --releaseThere is experimental support for running the customizer in the browser. You can find the latest version of the customizer deployed at https://julianschuler.github.io/concavum-customizer.
To run the web version locally, start by building the code using wasm-pack:
wasm-pack build customizer_wasm --target web --out-dir ../web/pkg --no-typescript --no-packThe files in the web subfolder can now be served using any HTTP server, e.g. if you have Python installed:
python -m http.server -b localhost -d webFor the above example, the customizer should now be accessible under http://localhost:8000.
The customizer consists of two parts: The configuration panel at the left and the model viewer at the right. The model is automatically reloaded for any change in the configuration panel.
If you are finished with configuring the keyboard, you can use the export button at the top right of the configuration panel to export all model files. The export is a ZIP archive containing the following files:
concavum.zip
├── config.toml
├── bom.csv
├── case
│ ├── case.stl
│ ├── bottom_plate.stl
│ └── bottom_plate_to_dxf.scad
├── pcb
│ ├── kikit_parameters.json
│ └── matrix_pcb.kicad_pcb
└── qmk
├── config.h
├── keyboard.json
└── keymaps
└── default
└── keymap.c
The config.toml file contains all the parameters of the exported model and can be loaded back into the customizer using the load button.
The bom.csv file lists all parts required for building the keyboard.
The case, pcb and qmk subfolders contain the 3D printing, PCB and QMK configuration files respectively.
Please refer to the Concavum documentation on how to use them.
This project is licensed under the GNU GPLv3 license, see LICENSE.txt for further information.
