SeanGilroy/blender-dactyl-keyboard

Blended Dactyl Manuform, a parameterized ergonomic keyboard

Python

102

146 commits

updated Jul 4, 2026

See the code

README

Blended Dactyl-ManuForm Keyboard (Blended-DM)

This is a fork of the Dactyl-ManuForm, which is itself a fork of the Dactyl, a parameterized, split-hand, concave, columnar, ergonomic keyboard.

Glamourshot

This project aims to rewrite the original codebase from Clojure to Python leveraging the bpy and bmesh libraries for Blender.

Disclaimer

This script is very much a work-in-progress. It is easy to select a set of parameters outside the "stable generation space". Additionally, Blender's output is not always predictable in mesh-output or runtime length. If a malformed object is generated, re-running the script (without any change to the codebase) may produce a better result. Your mileage may vary.

Generating a Design

Install Blender

Load Script

  • Open Blender and delete the initial collections and objects (i.e., Collection, Camera, Cube, & Light)
  • Switch to the Scripting Window
  • Either Copy-Paste the code into a new file or load src/blended-dm.py
  • Optional: Open Console Window to observe output
  • Optional: Edit parameters near beginning of file as desired. Increasing body_subsurf_level will increase the body smoothness but drastically increase generation time.
  • Run the script by pressing the PLAY button

[!Note] This script enables extensions available online and installs 3D Print Tooolbox and Edit Mesh Tools. If running for the first time, these extensions will bw installed, but fail to generate a proper mesh. Simply run the script a second time to complete the mesh generation.

  • If the objects generated correctly, export as .stl (located under File menu)

Required Hardware for Case

Thingiverse

The 5x6 body/bottom .stl set from the things/ directory is in the thingiverse for public printing

Acknowledgments

Special thanks goes out to Joshua Shreve, whose Python fork and accompanying Reddit post inspired me to create this Blender fork.

License

Copyright © 2015-2024 Matthew Adereth, Tom Short, and Sean Gilroy

The source code for generating the models (everything excluding the things/ and resources/ directories is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3. The generated models and PCB designs are distributed under the Creative Commons Attribution-NonCommercial-ShareAlike License Version 3.0.

ergonomic-keyboard
keyboard

Contributors

tshort

64 commits

SeanGilroy

54 commits

adereth

21 commits

mostley

2 commits

SeanGilroy/blender-dactyl-keyboard

Blended Dactyl Manuform, a parameterized ergonomic keyboard

Python

102

146 commits

updated Jul 4, 2026

See the code

README

Blended Dactyl-ManuForm Keyboard (Blended-DM)

This is a fork of the Dactyl-ManuForm, which is itself a fork of the Dactyl, a parameterized, split-hand, concave, columnar, ergonomic keyboard.

Glamourshot

This project aims to rewrite the original codebase from Clojure to Python leveraging the bpy and bmesh libraries for Blender.

Disclaimer

This script is very much a work-in-progress. It is easy to select a set of parameters outside the "stable generation space". Additionally, Blender's output is not always predictable in mesh-output or runtime length. If a malformed object is generated, re-running the script (without any change to the codebase) may produce a better result. Your mileage may vary.

Generating a Design

Install Blender

Load Script

  • Open Blender and delete the initial collections and objects (i.e., Collection, Camera, Cube, & Light)
  • Switch to the Scripting Window
  • Either Copy-Paste the code into a new file or load src/blended-dm.py
  • Optional: Open Console Window to observe output
  • Optional: Edit parameters near beginning of file as desired. Increasing body_subsurf_level will increase the body smoothness but drastically increase generation time.
  • Run the script by pressing the PLAY button

[!Note] This script enables extensions available online and installs 3D Print Tooolbox and Edit Mesh Tools. If running for the first time, these extensions will bw installed, but fail to generate a proper mesh. Simply run the script a second time to complete the mesh generation.

  • If the objects generated correctly, export as .stl (located under File menu)

Required Hardware for Case

Thingiverse

The 5x6 body/bottom .stl set from the things/ directory is in the thingiverse for public printing

Acknowledgments

Special thanks goes out to Joshua Shreve, whose Python fork and accompanying Reddit post inspired me to create this Blender fork.

License

Copyright © 2015-2024 Matthew Adereth, Tom Short, and Sean Gilroy

The source code for generating the models (everything excluding the things/ and resources/ directories is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3. The generated models and PCB designs are distributed under the Creative Commons Attribution-NonCommercial-ShareAlike License Version 3.0.

ergonomic-keyboard
keyboard

Contributors

tshort

64 commits

SeanGilroy

54 commits

adereth

21 commits

mostley

2 commits

Languages

Python

100.0%