Unified CAD and scripting packages for megastructure design, handle library generation and visualization.
#-CAD provides a graphical interface for designing crisscross megastructures with features including:
- 2D Grid Design: Intuitive slat placement on square or hexagonal grids
- Handle Optimization: Evolutionary algorithm for optimal assembly handle sequence selection from a finite library
- 3D Visualization: Real-time 3D rendering of a design
- Cargo and Seed Placement: Free-form editing of cargo handle placement
- Handle Linking: The ability to link handles or generate duplicates to build repeating unit designs
- Echo Export: Direct export to Echo Liquid Handler command sheets
- (Experimental) Double-Barrel slats - The ability to design and optimize megastructures using double-barrel 2x16 slats (alongside the standard 1x32 slats)
For comprehensive usage instructions, see the User Guide.
Desktop Application: Download the latest release for your platform from GitHub Releases.
| Platform | Download |
|---|---|
| macOS | Hash-CAD-macOS.zip |
| Windows | Hash-CAD-windows.zip |
| Linux | Hash-CAD-linux.tar.gz |
Web Application: Simply open the application URL here.
For detailed installation instructions, see the Installation Guide.
- Create or load a design: Start fresh or import an existing
.xlsxdesign file - Design your slat layout: Place slats on the 2D grid to form your megastructure. Slats must crisscross each other on different layers to produce a valid design.
- Optimize handles: Run the evolutionary algorithm to optimize handle sequence selection.
- Add cargo and seeds: Place functional elements on your design and select the seed binding position (requires a total of 5x16 handles).
- Export: Generate Echo commands or save for Python processing.
See the full User Guide for more details.
The crisscross python API can be used to manipulate megastructures programmatically, and its file format is fully compatible with that of #-CAD. The Python interface provides more flexibility and customizability when compared to #-CAD, at the cost of a steeper learning curve.
The bundled orthoseq_generator package helps you find sets of orthogonally binding DNA sequence pairs. The main focus is on selecting sequences based on thermodynamic binding energy, not sequence diversity (as commonly used in barcoding).
Simply install via pip (requires Python 3.11+):
pip install crisscross_kitPlease check our docs for more details on installation and usage of our joint python libraries for crisscross design and handle library orthogonal sequence generation.
#-CAD was developed in the William Shih Lab at the Dana-Farber Cancer Institute and the Wyss Institute at Harvard University. The following contributed to the codebase:
- Matthew Aquilina - Lead developer for the project.
- Florian Katzmeier - Developed handle assignment and handle library orthogonal sequence selection algorithms.
- Stella (Siyuan) Wang - Developed initial megastructure assembly and hamming distance calculation protocols, and implemented various custom megastructure design systems in the final codebase.
- Corey Becker - Developed initial prototype GUI using a combined javascript-python server and laid the foundation for the final #-CAD interface.
Experimental validation of #-CAD was carried out by the entire crisscross origami team, which also included:
All the above team members contributed to beta-testing and test-trialling the app during its development!
Development of the evolutionary algorithm was accelerated by the use of Harvard Medical School's O2 High Performance Compute Cluster.
This project was supported by various funding sources:
- A UK Medical Research Council Precision Medicine Transition Fellowship awarded to Matthew Aquilina (grant number MR/N013166/1)
- The Dana-Farber Cancer Institute's Claudia Adams Barr Program for Cancer Research
- A Wyss Institute Northpond Alliance Director's Fund Award awarded to Matthew Aquilina
- The German Research Foundation (Deutsche Forschungsgemeinschaft, DFG) through the Walter Benjamin Programme (project number 553862611, awarded to Florian Katzmeier)
- The U.S. Department of Energy, Office of Science, Basic Energy Sciences, Biomolecular Materials Program (Award No. DE-SC0024136)
- The Carlsberg Foundation (grant CF23-1125, awarded to Minke Nijenhuis)
- A Sloan foundation grant (grant ID G-2021-16495)
- The Harvard College Research Program (funding Corey Becker)
- The Korea-US Collaborative Research Fund (KUCRF) funded by the Ministry of Science and ICT and Ministry of Health & Welfare, Republic of Korea (grant RS-2024-00468463)
- The Novo Nordisk Foundation (grant NNF23OC0084494)
- The Wyss Institute's Molecular Robotics Initiative
For more details of everyone's coding contributions, please check the graphs here. Contributions from the open-source community are welcome!
Coming soon!
Accompanying data and a large set of examples is available at our Zenodo deposition here.


