Index: include/ged.h
===================================================================
--- include/ged.h	(revision 63621)
+++ include/ged.h	(working copy)
@@ -1245,6 +1245,11 @@
 GED_EXPORT extern int ged_mater(struct ged *gedp, int argc, const char *argv[]);
 
 /**
+ * Create NMG/BoT objects.
+ */
+GED_EXPORT extern int ged_mesh(struct ged *gedp, int argc, const char *argv[]);
+
+/**
  * Mirror the primitive or combination along the specified axis.
  */
 GED_EXPORT extern int ged_mirror(struct ged *gedp, int argc, const char *argv[]);
Index: src/libged/CMakeLists.txt
===================================================================
--- src/libged/CMakeLists.txt	(revision 63621)
+++ src/libged/CMakeLists.txt	(working copy)
@@ -152,6 +152,7 @@
   make_pnts.c
   match.c
   mater.c
+  mesh.c
   mirror.c
   model2grid_lu.c
   model2view.c
Index: src/libged/mesh.c
===================================================================
--- src/libged/mesh.c	(revision 0)
+++ src/libged/mesh.c	(working copy)
@@ -0,0 +1,48 @@
+/*                         L S . C
+ * BRL-CAD
+ *
+ * Copyright (c) 2014-2014 United States Government as represented by
+ * the U.S. Army Research Laboratory.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this file; see the file named COPYING for more
+ * information.
+ */
+/** @file libged/ls.c
+ *
+ * The ls command.
+ *
+ */
+
+#include "common.h"
+
+#include "ged.h"
+#include "bu/vls.h"
+
+int
+ged_mesh(struct ged *gedp, int UNUSED(argc), const char *UNUSED(argv[]))
+{
+  /* for example, 'mesh my_mesh +{{{5,0,0}, {2,0,0}}, {{3,0,0},
+   * {8,0,0}}}' adds a face with those loops; - would remove it.
+   */
+  static const char *usage = "obj_name [-b|-n] [+|-]face_description"
+    "\n\nface_description is a list of loops, each of which is a list of vertices."
+    "\n\nThe [+|-] argument defaults to + if an identical loop does not exist (which is always the case when creating objects) and - if it does."
+    "\n\nWhen creating a face in an NMG, the face is automatically ``connected'' to any other faces with which it shares vertices."
+    "\n\nThe -b and -n options force the creation of a bot or an NMG object respectively.";
+
+  /* initialize result */
+  bu_vls_trunc(gedp->ged_result_str, 0);
+
+  bu_vls_printf(gedp->ged_result_str, "Usage: %s\n", usage);
+  return GED_OK;
+}
Index: src/libtclcad/tclcad_obj.c
===================================================================
--- src/libtclcad/tclcad_obj.c	(revision 63621)
+++ src/libtclcad/tclcad_obj.c	(working copy)
@@ -1150,6 +1150,7 @@
     {"match",	(char *)0, TO_UNLIMITED, to_pass_through_func, ged_match},
     {"mater",	(char *)0, TO_UNLIMITED, to_more_args_func, ged_mater},
     {"memprint",	(char *)0, TO_UNLIMITED, to_pass_through_func, ged_memprint},
+    {"mesh", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_mesh},
     {"mirror",	(char *)0, TO_UNLIMITED, to_mirror, GED_FUNC_PTR_NULL},
     {"model2grid_lu",	"x y z", 5, to_view_func_less, ged_model2grid_lu},
     {"model2view",	"vname", 2, to_view_func, ged_model2view},
Index: src/mged/setup.c
===================================================================
--- src/mged/setup.c	(revision 63621)
+++ src/mged/setup.c	(working copy)
@@ -215,6 +215,7 @@
     {"mater", cmd_ged_plain_wrapper, ged_mater},
     {"matpick", f_matpick, GED_FUNC_PTR_NULL},
     {"memprint", f_memprint, GED_FUNC_PTR_NULL},
+    {"mesh", cmd_ged_plain_wrapper, ged_mesh},
     {"mged_update", f_update, GED_FUNC_PTR_NULL},
     {"mged_wait", f_wait, GED_FUNC_PTR_NULL},
     {"mirface", f_mirface, GED_FUNC_PTR_NULL},
Index: src/tclscripts/archer/ArcherCore.tcl
===================================================================
--- src/tclscripts/archer/ArcherCore.tcl	(revision 63621)
+++ src/tclscripts/archer/ArcherCore.tcl	(working copy)
@@ -254,6 +254,7 @@
 	method make_pnts           {args}
 	method man                 {args}
 	method mater               {args}
+	method mesh                {args}
 	method mirror              {args}
 	method move                {args}
 	method move_arb_edge       {args}
@@ -579,8 +580,8 @@
 	    delete draw e E edarb edcodes edcolor edcomb edit edmater d erase ev exists \
 	    exit facetize fracture freezeGUI g get graph group hide human i igraph \
 	    importFg4Section in inside item kill killall killrefs \
-	    killtree l lc ls make make_name make_pnts man mater mirror move \
-	    move_arb_edge move_arb_face mv mvall nmg_collapse \
+	    killtree l lc ls make make_name make_pnts man mater mesh mirror \
+	    move move_arb_edge move_arb_face mv mvall nmg_collapse \
 	    nmg_simplify ocenter opendb orotate oscale otranslate p q \
 	    quit packTree prefix protate pscale ptranslate pull push put \
 	    put_comb putmat pwd r rcodes red rfarb rm rmater rotate \
@@ -6613,6 +6614,10 @@
     eval gedWrapper mater 0 1 1 1 $args
 }
 
+::itcl::body ArcherCore::mesh {args} {
+    eval gedWrapper mesh 0 0 0 0 $args
+}
+
 ::itcl::body ArcherCore::mirror {args} {
     eval gedWrapper mirror 0 0 1 2 $args
 }
Index: src/tclscripts/lib/Ged.tcl
===================================================================
--- src/tclscripts/lib/Ged.tcl	(revision 63621)
+++ src/tclscripts/lib/Ged.tcl	(working copy)
@@ -326,6 +326,7 @@
 	method match {args}
 	method mater {args}
 	method memprint {args}
+	method mesh {args}
 	method mirror {args}
 	method model2grid_lu {args}
 	method model2view {args}
@@ -2260,6 +2261,10 @@
     eval $mGed memprint $args
 }
 
+::itcl::body cadwidgets::Ged::mesh {args} {
+    eval $mGed mesh $args
+}
+
 ::itcl::body cadwidgets::Ged::mirror {args} {
     eval $mGed mirror $args
 }
