Modifiers

Click on desired Heading in Table of Contents to jump to Entry directly (once page is loaded) (and use delete key to return ;)

Neal Hirsig's videos cover (most) Modifiers by short in-depth videos. This page includes links to alternative videos by e.g. blendercookie on-spot.
Check out ( and eventually rate ) this ranking of alternative tuts for "Modifiers" on the learning network, or check the link-list from the specific headings/modifiers. (under construction)
If you suggest new links for this page, please tag them BLS_Modifiers only, if they are focused on more than one, and BLS_Modifiers_seeheading additionally, if they cover specific modifiers.
You can also contribute without sign-up via surveys: see last heading on each page.


Basic short-info/tips:

  • Modifier panel: wrench symbol "tab"button in Properties Editor Window (right lower)
  • To see names of Modifier(s) complete, evtl. increase window size.
  • You can apply multiple Modifiers onto each object; Order is relevant, but can be changed by arrow symbols.

Multiple Modifiers

See video for stack example - and eventually an introduction to modifiers before going into deep

  • Excerpt along video

Multiple Modifiers

  • You can apply multiple modifiers to all mesh objects.
  • The sum of modifiers displayed above each other in the Modifier Panel (Properties Editor Window (lower right) is called Modifier Stack
  • New applied modifier is placed under precedent in stack
  • Each successive modifier will affect the effect of the Modifiers placed above it in the stack (applied before).
  • You can collapse the single modifiers' sub-panels to have better view over the stack.
  • Change order by clicking arrow symbols in Panel

Subdivision Surface Modifier

(Entry duplicated on "Subdivision" Page of this Wiki)

  • Excerpt along video

"Subsurf" Modifier is one of most frequently used modifiers
Subdivides all faces of a mesh, giving a smooth, organic appearance
Calculates "on the fly" - high resolution objects - low nuber of vertices
Many box modeling projects begin with simple subdivided cube, to which subsurf modifier is applied

(in edit mode)

  • In Modifier Panel click wrench symbol "tab" in Properties Editor Panel right lower window)
  • Select Subdivision Surface form Add Modifier dropdown.
  • It creates a smooth subdivided surface for each face of the cube - you can see it inside the edit mode cube mesh.
  • To model low-poly in your editor, but get high resolution render, you can choose between display resolution for View and Render resolution separately.
  • By default view display for 3D ViewpE. is set to 1, render resolution is set to 2.
  • It is common to model in Edit Mode with Subsurf added to an object.
  • To facilitate modeling, press the "Triangle-Vertex" symbol (right of darker grey icons in Subsurf Panel):

The trianglular vertex/edge icon applies the Editing Cage onto the subsurfed surface, which makes handling easier.

  • Blender is "calculating on the fly", which makes the modeling process much like modeling clay.
  • All Edit Mode tools are available, try Loop Cut, Rip, Knife Cut etc..
  • Activate the checkbox "Opdimized Display":

If you are ein Wireframe Z Mode ( and "Editing Cage onto Surface"-triangle is turned off) - Blender will not display subsurfed surface, but only the mesh cage.

  • Eye Icon in Modifier Panel: turns display of modifier on and off
  • Remove modifier by X symbol in Modifier Panel

Bevel Modifier

Bevel Modifier on blender.org wiki

  • Excerpt along video

Bevel Modifier is an Object Mode Modifier
produces 45° beveled edge along an objects edges and vertices - or simply vertices

  • Select object (in Object Mode) and press Modifier (wrench symbol) - "tab" in Properties Editor Window
  • From "Add Modifier" dropdown, choose Bevel
  • The Width controler in Bevel Modifier Panel (increase window size to see complete name) allows to increase width of bevel upto 1
  • To checkmark Only Vertices will limit bevel effect to vertices.
  • Limit effect methods: None on by default
  • Limit Angle button in panel: effect will only be applied to two adjoining faces of, or above set angle (according to set width, which can still be adjusted)
  • Weight button - works in combination with edit level Vertex Weighting Tool, which is not supported in Alpha version.

Boolean Modifier

QuickTip, not embedded, no excerpt: Using the Boolean Modifier effectively; by Jonathan Williamson on blendercookie

  • Excerpt along video

Boolean Modifier is an Object Mode Modifier
Method for combining or substracting one objects' mesh, form another objects' mesh

  • Both objects' meshes have to be well defined: have enough vertives/subdivisions. (Subdivide in Edit Mode to reach similarly strong defined subdivision for both objects.)
  • Position objects intersecting each other
  • Select the object that you want to apply the modifier to.
  • Choose and add Boolean Modifier from modifier dropdown tab (wrench symbol in Properties Window)
  • Click on Object Box dropdown in Modifier Panel and choose the other object as Boolean Object from dropdown
  • by default Boolean Modifier is set to Intersect
  • This means only the "area" that both objects shared/had in common, remains
  • Select and hide the second object, which initially remains visible in the 3Dviewport, covering the result of your operation. (Click eye symbol in Outliner Panel to hide it).
  • You see that the first object, which the modifier has been added to, is reduced to their intersection "area".
  • If you switch to Edit Mode, you see that complete object you added the modifier to is still intact - but neither visible in Object Mode, nor in renderings.
  • Boolean Modifier is a procedural or generate modifier: This means the original structure of both objects remains intact until the modifier is applied permanently. (But the rest is invisible in render and viewport (Object Mode)).
  • For complex scenes, it is ** better to apply the modifier permanetnly** directly , as your computer can be heavily used (or crash) by only rotating your view, when recalculating both complete objects constantly - or multiple Boolean Modifiers not yet applied.
  • Choose Union from dropdown instead Intersect:
  • Blender creates a new object out of both objects, joining them visually, but removing just the shared area, or intersection, within the joined mesh.
  • (In difference to CTRL+J Join operation, which does the same seen from outside (Object Mode)
  • Choose Difference from dropdown:
  • Boolean operation subtracts shared area from original (first) object.
  • Hide second object in Outliner Panel to see the result.
  • If you unhide and move it, the subtraction from the first shape changes accordingly, again visible once you hide the second again.
  • You can use Difference to cut a hole into an object (video shows a sphere cutting a hole into the original object when moved)
  • SPECIAL CASE: You can not cut a hole into a plane with a Boolean Modifer - one side of the object intended to cut a hole remains and is melted with the other object around the intended hole, where the other side of the object intended to cut the hole is removed.
  • Remove by X-ing Modifier Panel, as long as it has not been permamently applied.

Add more resources for the Boolean Modifier here (Tag: BLS_Modifiers_BooleanModifier)


Mirror Modifier

  • Excerpt along video

Mirror Modifier creates a linked duplicate of an object and mirrors it across the selected axis, defined by the objects' Origin, or Center Point.

Video shows example Cube:

  • Switch to orthogonal (here Front View), then to Edit Mode, select and move all vertices, to move the cube outside of his Origin (which remains at spot in Edit Mode), here the Origin is situated directly at the Global Origin.
  • Click Modifier Icon (wrench symbol tab) in Properties Window.
  • Choose Mirror modifier from dropdown.
  • By default, X(axis) is checkmarked in Modifier Panel, which positions a linked duplicate along the x-axis "Mirror Axis", on the other side of the Object Origin.
  • For y-axis Mirror, move object outside of its Origin in y-axis direction, when you checkmark Y in Modifier Panel, the duplicate is mirrored along the y-axis to the opposite side of the Origin.
  • For z-axis Mirror, move object outside of its Origin in z-axis direction, when you checkmarked Z, the linked duplicate is mirrored to the other side of the Origin along z-axis.
  • Under Objects in Mirror Modifier Panel, Vertex is selected by default - you can move selected vertices along the checkmarked mirror axis, and beyond the mirror plane. The mirrored part corresponds in mirrored fashion.
  • When Clipping is checkmarked instead, you can only move selected vertices along the selected mirror axis until it reaches mirror plane, where they are automatically welded. Once they are, they can not be moved apart.
  • "Use Modifier When in Edit Mode"-button toggles between mirror object to be visible, or invisible in Edit Mode.
  • When enabled, a second button is displayed: "Apply Modifier to Editing Cage" (vertex-triangle icon). When this button is enabled, the subcomponents are displayed on the mirrored portion of the object, which allows you to model on either side of the object now while modeling is mirrored on the other side.
  • Hence the mirror modifier is ideal for any type of symmetrical modeling
  • To mirror at the exact center, add a new object to the Global Origin and delete half of it, by deleting vertices after subdividing. (video shows plane).
  • Then activate Clipping, and Apply Modifier to Editing Cage button
  • Video shows modeling of mouth shape as symmetric example.

Array Modifier

Read on blender.org wiki documentation

Video by Neal Hirsig


EdgeSplit Modifier

Read on blender.org wiki documentation


Solidify Modifier

  • Excerpt along video

Solidify Modifier adds an extruded thickness to a flat or thin meshes.

Example shows houseshape with window outcuts.

  • Select object and click Modifier Icon (wrench symbol tab) in Properties Window.
  • Choose Solidify modifier from dropdown.
  • Adjust Thickness Control Slider (left)to set dimension of thickness.
  • To remove distortions, checkmark Even Thickness checkbox in Modifier Panel.
  • No smoothing attached to object, creates artifacts.
  • Faces in corners need to be quad faces.
  • Default Offset Thickness is set to -1; Range from -1 to 1, slide to defines offset of the thickness from the center.
  • To hide modifier click Eye Icon in Modifier Panel.
  • By default Fill Rim is checkmarked and creates a closed shape, when uncheked, the extrusion is like two sheets, not a close shape anymore.
  • When adding a Subsurf Modifier, the closing faces (Rim) are smoothed.
  • Crease controls allow to adjust them: Inner, Outer and Rim
  • Video shows different examples of shapes and additional modifiers.
  • When Solidify Modifier is attacheded after e.g. Subsurf, move it up in stack to use Crease Controls. (Arrows)

Decimate Modifier

  • Excerpt along video

Decimate Modifier works only in Object Mode
Reduces vertex and face count of a mesh object, with a minimal shape changes

  • handy when object is extremely vertex-dense mesh, e.g. through deformation, proportional editing or applied subsurf modifier - and rendering takes a long time
  • but has strawbacks and limitations
  • Select object and click Modifier Icon (wrench symbol tab) in Properties Window.
  • Choose Decimate modifier from drop-down.
  • When added, the face count initially doubles ( see in Modifier Panel and Information Header), as all quad faces are divided into triangles, before decimating then.
  • Works not on all meshes, sometimes Error message saying mesh is a "Non-Manifold Mesh" (contains edges that are common to more than 2 faces)
  • Ratio Control from 0 to 1. At 1 no decimation, at 0 all faces decimated - no object left.
  • To lower ratio can take a few seconds - visibly no or little change to the shape, but strong decimation possible
  • Before applied, no change in Edit Mode, as modifier still dynamic until applied.
  • Change to Object Mode
  • Press Apply button in Modifier Panel - this will permanently place it and remove modifier from stack.
  • No vertex decimated triangular substructure of object visible in Edit Mode

Screw Modifier

The embedded video is by Rex Harby, published on blendernerd

There is a video tutorial covering the screw modifier by Jonathan Wiliamson on blendercookie


Explode Modifier

Read on blender.org wiki documentation


Simple Deform Modifier

QuickTip video on blendercookie

*Video by Neal Hirsig

  • Excerpt along video

Simple Deform Modifier is an Object Mode deformation,
Applies twist, bend, taper or strech deformation to modified object

  • Deformed object needs to be well defined - subdivide in Edit Mode to provide sufficient vertices to complete deformations.
  • Select object and click Modifier Icon (wrench symbol tab) in Properties Window.
  • Choose Simple Deform modifier from dropdown.
  • By default Simple Deform modifier is set to Twist Deform. (Factor 0.35)
  • Increase of Deform Factor increases twist deform.
  • Switch from Twist, to Bend, Taper and Strech to see effect of increasing and decreasing the Deform Factor.
  • Limit slider option allows to limit start and end point of the deformation effect along z-axis of the deformed object (increase/decrease values by sliding or entering exact value.)
  • Some deformations can be limited by locking X or Y axis (to prevent the deformation effect along these axes):
  • You can check or uncheck these boxes (which appear under the Limit sliders) and thus affect the appearance of the modified object

Lattice Modifier

QuickTip video by Jonathan Williamson on blendercookie, and a second by David Ward, pointing to using the Lattice Modifier for a super-simple deformation animation (with some nice David sound effects accompanying smooshing Suzanne against a wall :)

  • Excerpt along video

Lattice Modifier uses Blenders' Lattice Object to alter the shape of the underlying mesh it is applied to.

  • The object you want to deform needs to be well defined to facilitate the Lattice Objects' influence on it- subdivide in Edit Mode to provide sufficient vertices to complete deformations. Tab out of Edit Mode.
  • Snap "Cursor to Origin of the selected object to deform (SHIFT+S -> select "Cursor to Origin")
  • Add a "Lattice Object" (SHIFT+A ->Lattice)
  • Adjust it to enclose the object to deform (object completely within Lattice Object)
  • Click Object Data Icon (Vertex-grid-look for Lattice) in Properties Editor Window, shows lattice controls
  • By default 2 control points in U,V and W direction (as not dependent to axes)
  • Select all in Edit Mode to see Control Points
  • Adjust/increase amount of control points along U, V, W axes
  • Checkmark "Outside" to remove control points generated within the object through control point increase and their consequent connection
  • Tab out of Edit Mode and name Lattice via Item Panel in N-Panel of 3DViewp.
  • Select object to deform and click Modifier Icon (wrench symbol tab) in Properties Window.
  • Choose Lattice modifier from dropdown.
  • Click on Object Inputbox-dropdown in Modifier Panel and select named Lattice Object. (Or name it now ;)
  • Select Lattice Object and tab into Edit Mode.
  • Now transform the object by selecting lattice control points as you like it. (video gives nice example)
  • If you select the object again and tab to Edit Mode, the transformation is not visible, to display it:
  • Click "Use modifier while in Edit Mode" button (yellow vertices) in Modifier Panel.
  • The initial undeformed object is still visible, to apply it visually:
  • Click the additional (vertex)button that appeared when "Use modifier…" was clicked "Apply modifier to editing cage when in Edit Mode"

Now the mesh structure is displayed on the deformed version of the object

  • Press "Apply" button if you want to make the deformation permanent
  • You can delete the Lattice Object then

Lattice is often used in animation - deformation depends on closeness of Lattice Control Points to object's vertices

The video shows a nice example of an "animation effect" that uses this. (non-permanently applied lattice)

  • If you move the object out of the Lattice Object, and thus the deformation influence, it regains its shape, and deforms while moving it back into, or through the lattice object

Displace Modifier

  • Excerpt along video

Displace Modifier uses the intensity of a texture to displace the vertices of an object - either interal procedural or external image textures can be used.

  • Define object to deform
  • The object to deform needs to be very well defined - subdivide in Edit Mode to provide sufficient vertices to complete deformations. Tab out of Edit Mode.
  • Use Empty for texture
  • You could associate the texture (internal or external) directly with the object and turn it off to make it non-renderable, thus only used as object to the Displace Modifier
  • "Cleaner" to use an Empty - Add an Empty object (Shift+A ->Empty) and name it (N-panel in 3DViewp.)
  • To add a texture, click Texture icon / checkerboard "tab"button in Properties Window, click "New" and name it in Texture Panel that appears.
  • Prepare texture

(Transcript from video texture example for Empty, which is meant to display a strong effect, and thus creates a black-white-black blended ramp:)

  • Video shows "Blend" texture example (choose from "Type" dropdown, and adjust it:
  • Checkmark "Ramp" in Color Panel in Texture Panel; In the ramp that is displayed now, select "Left Color End Swatch" (by leftclick on left end dotted line) and make Alpha full: click into color field underneath the ramp and slide A-slide up to 1; Select "Right Color End Swatch/Marker/Stop" and make it black via Value slide (right of Colorpickerwheel);

Add color in ramp's center: Click Add button left above ramp, and make it white by clicking into the color field - slide value; Then move left and right color markers a bit towards the center;
The Preview Panel shows a bright white vertical line, fading out to black to the sides;

  • Add modifier
  • Select well defined object to deform and click Modifier Icon (wrench symbol tab) in Properties Window.
  • From modifier dropdown menu, choose "Displace".
  • In the Modifier Panels' Texture Box. select the texture you created (dropdown on click)
  • The vertices of the deformed object are displaced corresponding to the texture:
  • Black area influence displaces vertices into the negative z-direction
  • White area influence displaces into positive z-direction
  • Midlevel slider
  • The slider "Midlevel" is by default set to 0.5 ( left bottom in the Modifier Panel, needs further explanation of the HSV (Hue Saturation Value) of a color:
  • For this switch to Texture Panel (texture icon)
  • Click a color marker, then the color field to display the color adjustment panel: by default, the blue button shows that RGB values are displayed, black has 0, white has 1
  • switch to HSV (Hue Saturation Value) - the button right of RGB

see that black has a value of 0, white has a value of 1 - while medium grey has a value of 0.5

  • hence if the Midlevel slider is set to 0.5,
  • colors wth a value ascending from 0.5 (grey to white) are displayced in the positive z-direction
  • colors descending from 0.5 are dispaced in the negative z-direction
  • If you lower the Midlevel to 0:

all colors with a level above zero are displaced in the positive z-direction (and black stays at the initial z-location)

  • Strength
  • The "Strength" slider control multiplys the strength of the effect (slide to see) default is 1.
  • Displacement Direction and Texture Coordinate
  • Displacement into z-direction as here, is related to Direction (set to Normal) and Texture Coordinate (set to Map) dropdowns right above Strength slider - for a flat plane.
  • Direction:
  • Face normals are perpendicular to each face of an object - hence the displacement for "Direction" set to "Normal" is not as predictable for more complex objects.
  • X, Y, and Z limits the displacement to the selected axes,

(To try out color-related RGB to XYZ switch texture type to "Clouds" and in Clouds Panel to "Color" (in Texture Panel - checkerboard icon tab)

  • RGB to XYZ displaces red to X, green to Y and blue to Z.

(All color values are lower than white (1) - hence if you switch a internal texture from greyscale to color after adding an effect, as the video does to explain Direction and Texture Coordinates, the amount of displacement is diminished)

  • Lowering the Contrast Level of a coloured texture can create nice soft landscaping - N.H: encourages to experiment:
  • Many types of procedural textures work quite well with Displacement Modifier
  • external images often produce dissatisfying results, especially if figurative rather than abstract, because there are not enough vertices even in a very well defined mesh to create a soft displacement - they tend to create sharp pointy vertex displacement.
  • video improts example skull picture, diminishes strong displacement due to extreme contrast via "Strength" slider in Modifier Panel.

Texture Coordinate

  • to import an image, switch texture Type to "Image of Movie", scroll down to "Image" panel that appears and click "Open" - and "Open" again in Blender file browser when detected on harddrive
  • an improted image, when the Texture Coordinate dropdown is set to "Map" - for a plane like in this example, displayes the imported image covering the complete plane by the local coordinates
  • To set the coordinates to "Global" via dropdown, uses Blender's global coordinates in reference to the images' true size, which is displayed tiled/repeated over the complete object, due to the texture settings:
  • To display the texture using global coordinates unrepeated, switch to texture panel and switch to "Clip" from Repeat under "Image Mapping"
  • Video shows how abstract or low-contrast images work better
  • an MRI image as example, with Brightness and Contrast adjusted in Texture Panel, and adjusted Strength in Modifier Panel, and a Subsurf modifier added, produces interesting results.
  • Modifier can be applied permamnently
  • Access editable structure in Edit Mode

Wave Modifier

QuickTip video tutorial for using the wave modifier by Jonathan Williamson on blendercookie

  • Excerpt along video

Wave Modifier creates animated wave-like motion along a mesh

  • The object to deform needs to be well defined - subdivide in Edit Mode to provide sufficient vertices to complete deformations.Tab out of Edit Mode.
  • To add the modifier to a selected object click Modifier tab/icon(wrench) in Properties Window, then choose Wave from dropdown
  • By default a centric position of the deformation is diplayed and
  • the Wave modifier is automatically associated with the Animation Timeline
  • The default Wave Modifier settings produce a quick wave motion moving out to the sides, adjust the default frame amount of 250 by clicking into the End slider control underneath timeline or sliding
  • Press "Go" /"Play" button and see the animation:
  • By default: quick wave motion starting in the center and flowing out to the sides - deformation of vertices in z-direction
  • X and Y are checkmarked in Modifier Panel - produces wave motion form center to outside edges
  • Only X checkmarked: creates wave motion in x-direction
  • only Y checkmarked: creates wave motion in y-direction
  • unckeck X and Y prevents wave and creates simple up and down movement of complete (here:) plane in z-direction
  • uncheck "Cyclic" checkbox: limits animation to one pulse, starting at frame 1 of the animation
  • to check "Normals" causes displacement along face normals instead of z-axis -> usually for more-dimensional objects, (normals for plane are parallel to z )
  • You can limit the wave motion to the checked axes = it will not move along normals of unchecked axes.
  • Bug in 2.5: It corrupts the file when you add multiple wave modifier on multiple layers
  • Control sliders on bottom of Modifier Panel:
  • Speed: ( -1 to 1) controls speed of the wave movement
  • Height (-2 to 2) controls height of the ripple
  • Width ( 0 to 5) controls the distance between the crests of succeeding waves (the lower the value the more waves/framesetting; in relation to speed setting)
  • Narrowness ( 0 to 10) controls the width of the amplitude of the wave (the higher the value, the narrower the pulse of the wave)
  • For a nice shaped wave, set Narrowness to twice the level of the Width
  • A slow Speed setting (0.05), a Width of 2.25 and medium Narrowness (4.45) allows you to understand the wave function better: the wave appears to propagate from the left (negative x) to right (positive x), but suddenly starts again from center to right (positive x-axis) wiith a new timeline loop, causing a break
  • The wave actually starts at the center of the mesh (timeline frame 1)( already formed), propagates in positive x-direction, and if the timeline frames "allow", it starts again from the left (negative x) and follows in positive x-direction
  • Once the timeline end is reached it starts again at the center with a new loop (frame 1) - no matter where it was at the lat frame, which causes the interruption
  • Offset timer control to sovle this problem : in Time / Offset slider control in Modifier Panel, so that e.g. start and end of the animation occur when the mesh is flat.
  • Overall length of a wave animation, is combined by the mix of the Time settings: Offset (at which timeline frame the animation starts), Life (length of time the wave propagates; 0=forever) and Damptime controlers (Damping: decay of the final wave to flatness after the waves life)
  • Alternative to setting Time Offset: Reposition the start via Position controlers (right of Time) Video shows how adjustment of X and Y start positioning in combination with wave movement resvideo tutorialtraining to axes aboves allows to contro the wave setting
  • "Falloff" adds dampening falloff ripple at the end of the wave motion
  • Start Position box allow to set the start position by another object - useful as the other object and thus the start position can be animated.
  • Vertex Group control allows the wave modifier to infulence a particular group of vertices
  • Texture (Video: add new Texture, name: procedural clouds; Noise size 0.5, Hard noise) Wave modifier panel: Falloff 0, Heigth 0.75 - select texture in Texture box. Texture dynamically displaces the mesh along with the wave displacement

Add more resouces for the Wave Modifier here (Tag: BLS_Modifiers_WaveModifier )


Curve Modifier

Video by Neal Hirsig


Mesh Deform Modifier

The Mesh Deform Modifier basically allows you to create a cage around a more complex object that allows you to deform your original object smoothly - similar to the Lattice Modifier, but giving you more control.

See a longer description of what the Mesh Deform Modifier is about on this 2.46 Blender.orgwiki explanation (as recommend by revolt_randy)

The embedded video tutorial, continued in this part, by revolt_randy, are some of very few videos to find so far for explaining the Mesh Deform Modifier. (But there has already been a request for a specific tutorial on BlenderCookie.)
Switch to the next part if you are less interested in how to model a cage after his introduction

Do not get irritated by the start - Randy explains this modifier in the context of a bigger project, in this part of the series, rigging; … (I recommend his tutorial series for you as soon as you have a feeling for the basics. It will walk you through a complete project cycle)


UV Project Modifier

Read on blender.org wiki documentation


Cast Modifier

Quicktipp by Jonathan Williamson on blendercookie


Suggest Improvements via survey or learning network

You can help to aggregate and rank complementing and alternative resources for each wiki page/topic.
Your contributions will be the foundation for a fluent improvement of this learning resource.

The survey embedded underneath enables you to contribute to this collaborative filtering without joining a new tool/network; after sending your contribution you can see what others suggested.

(Network members , please check the surveys for new contributions to add to the link-list.)

You are always welcome to join the learning network and add or "like-vote" (for) your favorite new option here. You can find the right page-tags on the surveys and on the introduction paragraph for each page.

If you join the network, please cast your vote for your favorite alternative/complementing tutorial per tag/heading - and if you find a better one, please "unlike" your earlier vote and "like" the new one.

This helps us to improve this resource most fluently.