diff --git a/bin/dnarbd b/bin/dnarbd
new file mode 100644
index 0000000000000000000000000000000000000000..703c3d86e1a559ab65285b1d49fe7ff6cadd49e4
--- /dev/null
+++ b/bin/dnarbd
@@ -0,0 +1,67 @@
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+
+import argparse
+import re
+from dnarbd.simulate import multiresolution_simulation as simulate
+
+parser = argparse.ArgumentParser(prog="dnarbd",
+				 description="""Easy multiresolution simulations of DNA nanotechnology objects using ARBD""")
+
+parser.add_argument('-o','--output-prefix', type=str, default=None,
+                    help="Name for your job's output")
+parser.add_argument('-d','--directory', type=str,  default=None,
+                    help='Directory for simulation; does not need to exist yet')
+parser.add_argument('-g','--gpu', type=int, default=0,
+                    help='GPU for simulation; check nvidia-smi for availability')
+parser.add_argument('--coarse-steps', type=int, default=1e7,
+                    help='Simulation steps for coarse model (200 fs/step)')
+parser.add_argument('--fine-steps', type=int, default=1e7,
+                    help='Simulation steps for fine model (50 fs/step)')
+parser.add_argument('--backbone-scale', type=float, default=1.0,
+                    help='Factor to scale DNA backbone in atomic model; try 0.25 to avoid clashes for atomistic simulations')
+
+parser.add_argument('input_file', type=str,
+                    help="""Any of the following:
+                    (1) a cadnano JSON file;
+                    (2) a vHelix Maya (.ma) file;
+                    (3) an atomic PDB file""")
+
+args = parser.parse_args()
+
+if __name__ == '__main__':
+    
+    infile = args.input_file
+    try:
+        re_result = re.match("(.*)\.([^.]+)",infile) 
+        prefix = re_result.group(1)
+        extension = re_result.group(2).lower()
+    except:
+        raise Exception("Unrecognized input file '{}'".format(infile))
+        
+    if extension == 'json':
+        from dnarbd.readers import read_cadnano as read_model
+    elif extension == 'ma':
+        from dnarbd.readers import read_vhelix as read_model
+    elif extension == 'pdb':
+        from dnarbd.readers import read_atomic_pdb as read_model
+    else:
+        raise Exception("Unrecognized input file '{}'".format(infile))
+                    
+    model = read_model( infile )
+
+    run_args = dict(
+        model = model,
+        output_name = args.output_prefix,
+        job_id = "job-"+args.output_prefix,
+        directory = args.directory,
+        gpu = args.gpu,
+        coarse_steps = args.coarse_steps,
+        fine_steps = args.fine_steps,
+        backbone_scale = args.backbone_scale
+    )
+
+    if args.output_prefix == None:
+        run_args['output_name'] = prefix
+
+    simulate( **run_args )
diff --git a/setup.py b/setup.py
index af491de65c9c8e9754e5d4e2c9d79819b7dad9fd..9cf1532cacc6a7d692ae82a570ab068742a8ca2f 100644
--- a/setup.py
+++ b/setup.py
@@ -19,6 +19,7 @@ setuptools.setup(
     url="https://gitlab.engr.illinois.edu/tbgl/tools/dnarbd",
     packages=setuptools.find_packages(),
     include_package_data=True,
+    scripts=['bin/dnarbd'],
     install_requires=(
         'numpy>=1.14',
         'scipy>=1.1',