BOT(nged)

Perform operations on a Bag of Triangles (BoT) primitive.

πŸ“… published 7.44.0, from nixpkgs unstable

✨ BOT(nged) ✨

okay bestie, welcome to the BOT(nged) glow-up πŸ’… this is a page straight out of the BRL-CAD User Commands manual, and it's literally all about making a Bag of Triangles (BoT) primitive do your bidding. yes, triangles have feelings too, and this command is their group chat admin 🫢


🌸 NAME 🌸

bot β€” it performs operations on a Bag of Triangles (BoT) primitive. that's the whole vibe πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

bot [-v] [-V] [-C [0-255|0-255|0-255]] {subcommand} {subcommand arguments}

check {degen_faces | extra_edges | flipped_edges | open_edges | solid} {objname}

chull {input_bot} {output_bot}

decimate [-f #] [-e #] {input_bot} {output_bot}

extrude {input_bot} {output_bot}

flip {objname}

get {faces | minEdge | maxEdge | orientation | type | vertices} {objname}

isect {objname} {objname2}

remesh {input_bot} {output_bot}

set {orientation | type} {objname} {value}

smooth [-c [0|1|2]] [-d [0|1|2]] [-e #] [-E #] [-I #] {input_bot} {output_bot}

split {objname}

stat {objname}

subd [-A [1|2|3|4|5]] [-l #] {input_bot} {output_bot}

sync {objname}

πŸ’– DESCRIPTION πŸ’–

the bot command is your main character moment for kicking off a whole bunch of subcommands on BoT primitives. no cap, that's the entire premise. ✨


πŸŽ€ OPTIONS πŸŽ€

  • -h, β€”help β€” prints help. the "help me help you" flag πŸ™ˆ
  • -v, β€”verbose β€” turns on verbose output. it's giving "tell me everything" energy, and we love that for us πŸ’¬
  • -V, β€”visualize β€” visualizes results when the picked subcommand supports it. only when supported, bestie β€” vibe check required πŸ‘€
  • -C r/g/b, β€”color r/g/b β€” sets the RGB plotting color that the visualization-oriented subcommands use 🎨

🌈 SUBCOMMANDS 🌈

  • check β€” runs the check you ask for on the provided solid. your check options are degen_faces, extra_edges, flipped_edges, open_edges, or solid. the command returns a 1 if the specified check finds an issue, or 0 if you're golden ✨
  • chull β€” generates the BoT's convex hull and stores it in an object. glow-up by shrinking the wrapper, iconic πŸ‘‘
  • decimate β€” decimates the BoT. the default error metric is Quadric. lowkey destructive, highkey useful πŸ˜­πŸ’€
    • -f # β€” specifies the features size, which implies use of the GCT decimater.
    • -e # β€” specifies the maximum allowed error introduced by decimation (OpenMesh).
  • extrude β€” generates an ARB6 representation of the specified plate mode BoT object 🧚
  • flip β€” flips the BoT triangle normal directions, aka turns the BoT "inside out". this will also change the handedness of the BoT, if set. so a right-handed (counter-clockwise) BoT will become a left-handed (clockwise) BoT. an unoriented BoT's orientation will not change. not it flipping your whole geometry's whole personality πŸ’€
  • get β€” returns the requested parameter of the provided BoT solid. valid parameters are faces, minEdge, maxEdge, orientation, type, or vertices πŸ“
  • isect β€” tests if the two provided BoTs intersect (work in progress). yes, that's the actual status β€” work in progress, so manage your expectations bestie πŸ™ˆ
  • remesh β€” creates a new meshed version of the provided object. fresh mesh, fresh me πŸ’…
  • set β€” sets the specified property of the provided bot. properties you can set are orientation and type. potential values for orientation are none (no), ccw (rh), or cw (lh). potential values for type are surface, solid, plate, or plate_nocos ⭐
  • smooth β€” smooths the BoT using OpenMesh's Jacobi Laplace smoother. glass skin but for triangles ✨
    • -c [0|1|2] β€” specifies the continuity. the default value is 0, meaning shape is continuous, but not the tangent. a value of 1 means the shape and tangent are continuous, and a value of 2 preserves curvature.
    • -d [0|1|2] β€” specifies the direction. the default is 0, smoothing in tangential direction. a value of 1 smooths in normal direction, and a value of 2 smooths in both tangential and normal directions.
    • -e # β€” specifies the max local error.
    • -E # β€” specifies the max absolute error.
    • -I # β€” specifies the iterations for smoothing.
  • split β€” splits the provided BoT into separate BoTs made of disjointed sections. the friend group breakup arc 😭
  • stat β€” returns information about the provided BoT. the ✨stats✨ are statting πŸ“Š
  • subd β€” subdivides the provided BoT πŸ¦‹
    • -A [1|2|3|4|5] β€” specifies the algorithm used to subdivide the BoT. the default is 1, which specifies the loop algorithm. a value of 2 specfies the sqrt3 algorithm, a value of 3 specifies the sqrt3 interpolating algorithm, a value of 4 specifies modified the butterfly algorithm, and a value of 5 specifies the midpoint alorithm.
    • -l # β€” specifies the level of subdivision refinement iterations. note that the number of triangles generated grows very rapidly with increasing iteration counts β€” it is recommended that users start with small refinements on the target bot to get a feel for the tradeoff between triangle count and smoothness.
bestie please hear me on this one πŸ™ the triangle count goes feral fast. start small, feel out the tradeoff between triangle count and smoothness, and don't come for me when your mesh explodes into a million little slays πŸ”₯
  • sync β€” synchronizes connected BoT triangle orientations. got your triangles all on the same page, fr fr 🀝

🧚 EXAMPLES 🧚

Example 1. Set the orientation of a BoT to right-hand

mged>bot set orientation bot_solid.s rh

sets the orientation of solid bot_solid.s to right-handed (counter-clockwise) πŸ‘‘

Example 2. Return the orientation of a solid.

mged>bot get orientation bot_solid.s

returns the orientation of bot_solid.s. note that this will return ccw (right-handed), cw (left-handed) or none (unoriented) β€” yes, you get the whole lore ✨

Example 3. Return information of a solid.

mged>bot stat bot_solid.s

returns information about bot_solid.s πŸ“Š


πŸ’œ AUTHOR πŸ’œ

BRL-CAD Team β€” icons, all of them 🫢


πŸŽ€ BUG REPORTS πŸŽ€

reports of bugs or problems should be submitted via electronic mail to devs@brlcad.org πŸ“§ don't be shy, if something's broken tell the girlies, they'll fix it πŸ’…


and that's the page, bestie! brought to you by BRL-CAD and the BOT(nged) manual β€” go forth and make those triangles behave πŸŒΈπŸ’–πŸ¦‹

πŸ“¦ where this page comes from