This video demonstrates the Briar drawing program.
Briar integrates constraints and direct manipulation.
This video demonstrates the four main aspects of Briar.
One, it uses snap dragging to help establish relationships
in drawings.
Two, Briar augments the snapping operation
to make new relationships into persistent constraints.
Three, it permits direct manipulation of the model
subject to the constraints.
And finally, Briar provides a visual language
for displaying and editing the constraints.
Briar uses a technique called snap-dragging to help establish
relationships in drawings.
The pointer arrow is directly controlled by the mouse.
The cursor follows the pointer arrow
but snaps to objects when they're nearby.
It has a preference for interesting points,
such as endpoints, centers, and intersections.
To show snapping, feedback lights up the object's
Snap To with a yellow stripe and changes the cursor shape
depending on whether it is snap to a point or to an edge.
When multiple objects are close to one another,
pressing the Cycle button selects among them.
Snapping is used for all drawing operations,
such as selecting, dragging, and creating new objects.
Unlike previous systems which have used snapping,
Briar can turn new relationships into persistent constraints.
Briar augments the snapping operation
to specify constraints in addition to positions.
When a new relationship is established,
Briar notes it in orange.
This can be ignored.
But pressing a key accepts the relationship, turning it cyan,
and Briar will make it into a constraint.
Since most relationships will become constraints,
Briar can make this the default mode.
In this mode, relationships become constraints
or can be rejected.
There are two types of snapping operations--
snapping a point to an edge or a curve
and snapping a point to another point.
These correspond to Briar's two basic constraints--
point on object, denoted by the empty square,
and point to point, denoted by the filled diamond.
These two symbols form the basis of Briar's visual language
for representing constraints.
Special alignment objects help establish other relationships.
At designated points in the drawing,
such as the ends of this striped line,
Briar can automatically create circles
of various radii and lines of various orientations.
These alignment objects exist only to be snapped to.
They help users establish relationships in the drawing.
For example, they can be used to specify
lengths and orientations or to line objects up.
The display of constraints and alignment objects
can be turned off so users can see what their drawing will
look like when printed.
Here's a standard snap-dragging example.
1-inch alignment circles are used
to create an equilateral triangle.
Circles are created at interesting points,
such as where the mouse is clicked down
and the ends of new line segments.
By snapping to the circles, we have
specified that the line segments are connected to each other
and all have length 1 inch.
These relationships are preserved
during subsequent dragging, keeping
the 1-inch equilateral triangle.
Instead of specifying 1 inch, we can draw the first line
segment, measure it, and create circles
with radius equal to this.
We have specified a triangle whose sides
are constrained to be equal.
However, we have not specified the size.
Therefore, this triangle can scale as well as
rotate and translate.
Briar provides two methods for deleting constraints.
For both, the user specifies the affected objects, not
the constraints themselves.
When a point is grabbed, holding down a modifier key
causes it to be ripped out.
All constraints on it are removed.
The other method for deleting constraints is Break Mode.
This mode temporarily disables constraint maintenance.
The objects move freely.
Broken constraints are clearly noted and removed
when constraint maintenance is re-enabled.
Lightweight constraints are easily
placed constraints used to help with manipulation.
Sometimes it's hard to manipulate an object the way
we want.
We can use an extra hand.
A tack is a lightweight constraint to help in this.
The tack, denoted by the filled circle,
holds a point down, acting like an extra finger.
It can help stretch or rotate objects.
The tack is placed with a single button click.
In this example, we used snapping and 60-degree
alignment lines to create a drawing of a V-engine.
Constraints make it possible to build the engine incrementally,
adding relationships one at a time.
Once complete, constraints continue
to keep the engine together, allowing us
to experiment with its motion.
Because mechanical contraptions are
so interesting to experiment with,
Briar has several features to facilitate creating them.
This drawing demonstrates linkage elements,
ground points, and two motors which rotate automatically.
Even though it is capable of creating this animation,
Briar is still a drawing program.
We can directly manipulate the model or edit it in place.
Like many drawing programs, Briar
allows creating hierarchical models.
Objects can be grouped together to create compound objects.
These groups can be translated, rotated, scaled, or even
copied.
Compound objects can be snapped to
and constrained just as any other objects.
This video has shown the Briar drawing program.
Briar integrates direct manipulation
and constraint-based techniques.
It uses snap-dragging to help users establish relationships
in drawings quickly.
Briar augments snap-dragging to identify these relationships
and make them into constraints.
It has constraint maintenance techniques,
which allow users to directly manipulate models
subject to the constraints.
And finally, Briar uses of visual language
to display and edit the constraints.
By integrating direct manipulation and constraints,
Briar addresses the issues in each.