Wrap Change Log
Released November 2023
adds a sticky-lips effect, closes lips and eyelids and minimizes manual cleanup.
In SelectPointsWithSplines node improved drawing splines, added spline continuation on SHIFT + LMB.
In SelectPolygons node, moved and renamed the Topological Mirror and + Topological Mirror buttons to Mirror and + Mirror.
In ModifyVertexMask node added Normalize mode.
In AlignGeomToCameras added Rotation Center Type parameter.
In Command Line Interface changed default value of
WRAPCMD_NO_OPENGLto false. Thus OpenGL is enabled by default.
Added the following shortcuts in SelectPolygons node: * SHIFT + LMB double-click to add polygroup to selection, * CTRL + LMB double-click to remove polygroup from selection, * ALT + LMB double-click near selected polygons to select a loop.
In SelectPointsWithSplines node fixed a bug with incorrect cursor snapping on rotated geometry.
In SelectPointsWithSplines node fixed a bug after starting to draw a spline using the Alt + LMB shortcut.
In SelectPolygons node fixed a crash, when selection was loaded from file and input was disconnected.
In Brush node fixed a title mistake Hidden polygons to Visible polygons.
In VertexMask node fixed a bug, when clicking Inverse button leads to resetting the mask if no geometry was connected.
In Node-Graph Editor fixed a bug, when selecting half of selected nodes didn’t alter a selection.
In the gallery fixed UV of
Released October 2023
In WrapCMD restored running
computewithout args as computing frame 0. Interactive mode is now available with
--interactiveflag. Check Command Line Interface for details.
Finishing dialog after Nodes >> Compute All now is showing total computing time.
In MergePoints added a Visual Editor, Geometry input and Show Labels param.
In RemoveSpikes node removed geom connectivity requirement.
In PointDetector fixed OpenGL requirement. It’s now unnecessary for providing accepted result, only for computing.
In WrapCMD fixed error printing order.
In Nodes >> Compute All fixed progress bar freeze.
Fixed a crash when disconnecting multiple ouputs from multiple inputs in a specific order.
In Python code editor fixed highlighting with all unicode characters.
Released October 2023
In Node-Graph Editor you now can select multiple nodes and Node Editor, Visual Editor and rest will still be shown for one of them, the active one. You can change the active node by clicking on one of selected ones or throught a list in the top of Node Editor block.
In Viewport2D Color Picker improved. Now shown hex is compatible with other softwares color pickers, such as Photoshop.
In Python code editor improved syntax highlighting.
Fixed a crash in WrapCMD when computing LoadVertices node without OpenGL context.
Fixed slowdown in ImageFacialWrapping node computations in batch mode over time on Windows.
In Python parameters expressions converting from color hex now assumes sRGB input format to match other softwares. Also expected colors are now stated as unpremulted.
In Nodes >> Compute All dialog fixed an error when nodes with errors prevent progressbar from moving.
In VertexMask visual editor fixed a bug when clicking in any place in viewport forces recomputing node’s output.
In LoadVertices fixed error formatting when can’t open file. Filepath isn’t appearing twice now.
In Blendshapes fixed incorrect normals in Visual Editor.
In Nodes >> Compute All dialog fixed an error when you could accidentally press ESC and hide a progress dialog forever.
Fixed an error when pressing Ctrl while dragging a dock panel didn’t make panel floating.
Released October 2023
In FixSymmetry node added caching for finding symmetry.
In the WrapCMD added an environment variable
WRAPCMD_NO_OPENGLto ignore OpenGL while computation.
In OpticalFlowWrapping fixed a crash when computing with empty point correspondences.
In SelectPointPairs fixed a crash when loading poits from file with missing input geometry.
In Node-Graph Editor fixed an error when releasing MMB or RMB during dragging a connection resulted in connecting to the closest plug.
Released September 2023
lets you to draw precise splines on a model and sample them to named points
In Nodes >> Compute All fixed an error where selected frame ranges are cleared when focus is removed.
In several nodes fixed Null point correspondences error when missing optional input.
In Node-Graph Editor fixed a crash after multiply clicking on node’s plugs.
Released September 2023
Added TexturingXYZ project to the gallery.
Added Python project global script support.
Added expected type hints to Python parameters expressions and improved editor actions.
Added custom ranges support and Step Size param to Nodes >> Compute All.
Added several new shortcuts for the common menu tools.
In Command Line Interface added new options and mode helps.
In ImageFacialWrapping node added second facial detection support and additional caching, which speeds up computations after the first frame by 33%.
In FastWrapping node added Sampling Type param.
In LoadAlembic node added Frame and Frame Per Second params.
In Node-Graph Editor added connection transparency and highlighting and removing elements with CTRL + LMB.
In MergeImage changed blend modes to work correctly with semitransparent images.
In MergeVertexMask added new modes and simplified formulas.
Added the ability to work with 32-bit images to node UndistortImage.
In saving nodes File Name defualt value changed to
In image and camera nodes added Lock Aspect Ratio check to Resolution param and changed default resolutions to the common ones.
Fixed crashes with several cases using
Fixed an error when editing multiple params partially defined by a Python expressions led to a crash.
Fixed errors when adding, removing and copy-pasting nodes with multiple inputs.
Fixed missing and wrong nodes recomputes on changing global values.
Fixed an error when node depending on
projectName(), didn’t recompute after saving project with new name.
Fixed an error when Path Interpretation worked too greedy and matched
$PROJECT_NAMEin the file names.
Fixed a crash of Compute All during computation Render node in CPU mode.
Fixed an error when Render node in CPU mode interpolates the texture with half pixel offset.
Fixed an error when Render node’s visual editor backgrounds reset to default on every project saving and preferences editing.
Fixed an error when Blendshapes node’s result had incorrectly directed normals.
Fixed an error when Wrappings computation was available during incorrect Point correspondences input.
Fixed an error when saving project with Python scripts containing brackets inside the quoutes lead to appearance of extra spacebars.
Fixed an error when Viewport2D UV fits to view only first UDIM of multiple UDIMs geometry.
Fixed an error when LoadFrameFromVideo default Frame expression reappears on reloading or copying.
Fixed an error when in param with Python expression of type
list of stringscould read a string as a sequence.
Released June 2023
undistorts a camera
adapts an image to the camera’s undistorted view
maintains a given distance between two geometries given
wrap cartoonish characters and creatures easily
moves geometry’s vertices along it’s normals
transfers topology between blendshapes sequences
resolves geometry’s self-intersections or intersections with a collider
fills holes in geometry with triangles
merges multiple geometries into a signle one
creates a texture, which is a sum of masked projections of several other textures
blurs an image by rotating around the given origin
bakes geom’s transform into vertex positions
loads a frame from a videofile as an image
loads vertices from the PLY format to geometry
saves geometry’s vertices to the PLY format
loads a camera from variety of formats
saves named points on triangles to file
loads a vertex mask from file
saves a vertex mask to file
Autosave has been added. Turn it on in Preferences >> General.
Floating images support has been added to LoadImage, SaveImage, MergeImage, ExtrapolateImage, ReplaceImageChannels, etc. In addition, most of Image nodes and Render can now be computed without OpenGL.
Large size images support has been added, such as 8K, 16K. Currently algorythms are still RAM-greedy. In Viewport2D now a downscaled image preview is shown instead.
In Viewport2D the top toolbar has been added. It supports changing Colorspaces and toggling Channels of image view. A Color Picker tool has been added, as well.
In node Node Editor Panel color choosing dialog has been improved. It supports Colorspaces, Ranges, HSV, and colors history.
Paste with Connections action has been added in Node-Graph Editor.
Save Project dialogs in Wrap now opens in more convinient dirs.
Sequence Selection in Load nodes has been improved.
In Node-Graph Editor tab menu new lookup method has been added.
In LoadGeom has been fixed memory leak while loading a Draco.
While Compute Range memory block has been fixed. Previously, memory was freed only once you press OK in a dialog.
In Node-Graph Editor recursive connections crash has been fixed.
In many of Geometry nodes caching has been improved. Previously, changing Visual Param of input geometry such as color or wireframe visibility could break already cached nodes. It affects such node as RemoveSpikes, DeletePolygons, Blendshapes, etc.
In FastWrapping inconsistense Compute and Auto-Compute results has been fixed.
In FastWrapping freeze and crash on selected point on noisy detached geom has been fixed.
In Python parameter expressions several errors have been fixed. Now comments and semicolons can’t break one-liners.
License Activasion crash has been fixed on Linux.
In LoadGeom specific geom loading crash has been fixed.
In Node-Graph Editor ALT + LMB crash has been fixed. As well, the bug of removing nodes while moving it or it’s connection has been fixed.
More detailed error messages of loading and updating projects have been added.
In Compute Range a proper error message has been added.
In Node-Graph Editor node names generating mistakes has been fixed.
In SelectPoints editor several UI problems have been fixed.
In SelectPointPairs visual editor missing point updates have been fixed.
In SelectPolygons visual editor the problem has been fixed. Display Mode is no more seted to Polygroups when the input geom has no polygroups.
In LoadPoints visual editor missing transform bug has been fixed.
You can still use your existing R3DS licenses to activate Wrap. If such Nodelocked or Floating licenses would be found on your computer, they would be silently used to activate latest products, if possible. The more accurate scheme is: - If there is a new Faceform license already in the newest Faceform settings, then nothing will change. - If there is no old licenses on your computer, the License Dialog will work as previously. - If there is an old license on your computer, and there are no new, an old license would be taken and used as a new one. - Anytime, running Wrap, you still can go to License >> Activate License to activate new license instead of the old one.
Released November 2021
In Brush node, fixed crash on changing the symmetry mode.
Released November 2021
Loading Wrap projects from a command line added.
In search node menu added more prior to first letters and capital letters. For example, searching for “lg” will quickly find LoadGeom node.
In Brush node, fixed crash on connecting geometry.
works up to 20 times faster than a regular Wrapping node. The speed up is especially noticeable on highpoly base meshes
automatically detects facial markers on FACS scans. Please check this tutorial to see how this node can significantly speed up the point selection process. This video explains how to setup this node to work with your custom topology.
restores previous subdivision levels for meshes produced using Catmull-Clark subdivision
matches the vertex order of your model with a given reference
computes transformation between two models with the same topology
moves mesh details from reference geometry to target geometry
loads named points
In SelectPointPairs node: if you select a set of points on one model, clicking Ctrl+F shortcut will fit the camera to the location of the next point on the second model. Please check this tutorial to see how it helps to speed up a point selection process.
Added a tooltip panel at the bottom left corner of the viewport and visual editors. It shows a list of shortcuts supported by the current tool. The tooltips are added to SelectPoints, SelectPolygons, SelectPointPairs, Brush, VertexMask, OpticalFlowWrapping, and PointDetector nodes.
WrapCmd and Node applications no longer require OpenGL. It makes it easier to run them on a farm and machines without graphics cards. The only nodes that require OpenGL 2.1 to compute are the ExtrapolateImage and Render nodes. When running on machines without graphic cards or with no OpenGL 2.1 available, these nodes will return an error.
Viewport3D and VisualEditor now support antialiasing.
In SaveFacialDetection node computation can be performed in multiple parallel processes.
Render node has a Show Backfaces option.
DeletePolygons has an option to delete selected or non-selected polygons.
In MixGeom node: the Mask input parameter is now optional.
Added commonDir(), projectDir() and galleryDir() Python functions.
Nodes that have
VertexMaskas output data type has the ability to save
VertexMaskfrom the context menu in the graph editor.
When dragging-and-dropping a file into the graph editor a node will take the name of the source file.
Improved Preferences dialog.
Improved search in node menu.
Changing Timeline current frame with Shift now doesn’t force all nodes to recompute.
Fixed a bug with saving node colors.
In MergeImage node: fixed transparent background bug.
In DeletePolygons node: fixed incorrect polygon group mapping.
In Wrap4DCmd fixed error tracing.
In several nodes, fixed $PROJECT_DIR support.
Improved file filters in some nodes that allow to import/export files.
Released December 2020
When application crashes, it automatically saves its latest state to a crash dump file. A user can then manually send the file to the developers to help them the diagnose problem. The crush dump files can be located at
$USERPROFILE/AppData/Local/Faceform/Wrap/CrashDumpsfor Windows, and at
Fixed incorrect UV winding order when loading meshes from Alembic files.
Released December 2020
In TransferTexture node the value of V parameter is now interpreted as flipped.
Released October 2020
In SelectPolygons the File Name parameter dialog was fixed so that one can specify a file name for not yet created file
Released October 2020
MixGeom node has a new Blend parameter. It controls the mix amount between the two models.
Camera node can now import a camera from Reality Capture and Metashape. For Reality Capture version 184.108.40.20696 and earlier the import can be done only from an FBX file. Please check the documentation for more details.
Camera node has a new Principal Point parameter that allows changing the center of the optical axis.
A memory leak has been fixed in the MixGeom node during loading of files in Draco format. Previously it led to RAM overflow during processing of large sequences in batch mode.
Released 17 August 2020
creates a camera that can be used for rendering, projecting
ScreenPointsand other purpoces
creates an image filled with a solid color
loads geometry from Alembic format
loads a transform from a file in JSON format
overlays a foreground image over a background image
merges two sets of points
blends vertices of two meshes based on the value of a vertex mask
converts two sets of points
renders an input geometry through a Camera
replaces image channels of a given image. A second image can be used a source of the channels
saves geometry into Alembic file
saves transform to a file in JSON format
lets you select named points on a model
creates an image with a text on it
allows painting a vertex mask on a mesh
Support of path variables (
$COMMON_DIR) for all file name parameters
SelectPoints node type was renamed to SelectPointPairs
OpticalFlowWrapping node has a Projection Mask option that prevents distortion artifacts on a mesh borders, especially on a neck
OpticalFlowWrapping node has an optional VertexMask input that defines which vertices should not be moved by the optical flow
OpticalFlowWrapping node is up to 2 times faster providing the same results
ProjectGeom node now accepts VertexMask input which allows projecting vertices using soft masks
SelectPointPairs node has different symmetry modes including topological symmetry
SelectPointPairs node highlights points the first point that doesn’t have a pair
Wrapping node has a Terminate button in the wrapping dialog
Wrapping node is up to 2 times faster providing exactly the same results
Dockable panel system for UI customization
Fix camera navigation in the Brush node
Released 17 June 2019
provides an example-based wrapping method that reuses pre-existing wrapped meshes to improve the wrapping quality for further models. This node reduces the need for cleanup to a minimum
provides a variety of brushes for mesh sculpting and cleanup. It is especially handy for fixing mesh artifacts after wrapping
copies a transformation from one object to another
Copy and paste of nodes
Drag and drop of models and images into the node graph
Compatibility with projects made in all the previous versions of Wrap3
New base meshes in Wrap gallery. Includes female fullbody, skull, and teeth
Improved gallery which includes project samples and can be extended with extra packs downloaded from our website
Support of non-latin characters in file paths
Menu of recently opened projects
Improved node-graph UI
Node alignment in node-graph
Node connection with click-and-drag
Saving a node result from the node context menu
UVs are no longer smoothed by SubdivideGeom node
Released 05 April 2018
Floating licenses support
Wrap3 now can be used in floating license mode. Instructions how to set up license server one can find in floating documentation section.
Released 24 November 2017
Uses optical flow to fit a textured basemesh to a textured scan. The node can be used to fit a neutral mesh of an actor’s face to 3D scans of his facial expressions. It renders pairs of images of both models from different angles and finds optical flow between the images. For each image pair it generates a set of decisions on where to more each pixel. All the decisions are then combined into a global solution.
Blends input geometry according to blendshape weights. Along with geometric blending the node also provides a real-time preview of texture blending.
Adds a new transformation to a current transformation of an input geometry. Supports interactive transformation in the 3D-viewport.
Texture projection and geometry projection works much faster even for meshes with big triangles. Point selection works with small-scale models.
35 Facial Blendshapes
Wrap’s gallery now incudes 35 anatomically correct blendshapes. The blendshapes were captured from real person and then transered to a generic face. Thanks to Alexey Bodatirev for careful post-processing of each blendshape.
6 Facial Scans
A set of facial scans have been included into Wrap’s gallery.
LoadGeom node crashes when polygon indices refers to non-existing polygons.
Wrapping node crashes when plugging non-geometrical data into the first input.
OBJ-files with polygroups exported from Houdini cause crash on loading.
In SelectPolygons node a 100K polygons limit is removed for loop selection. Now loop selection works for any meshes except for ones that contain only triangles.
RepairGeom node crashes when input geometry contains invalid polygons and doesn’t have texture coordinates.
Released 5 December 2016
Takes two models in the same topology and seamlessly replaces a part of one model with a part of the other.
Detaches a selected part of a model to a separate geometry (a subset). The subset can further be modified, saved, loaded, wrapped or transformed. Any changes in vertex positions of the detached geometry can be later brought back to the original model using ApplySubset node.
Works in pair with a Subset node. Copies vertex positions of the subset back to original mesh. The topology and the vertex order of the subset geometry should not be modified.
Command Line Interface
Wrap can be run through a command line interface. Find more about command line arguments here.
The basemesh was designed specifically for wrapping purposes by Alexey Bogatyrev. It can be used for commercial purposes.
MTL Reference Preservation
Wrap preserves reference to .mtl file when loading and saving model to OBJ-file.
Auto-compute is off by Default
Auto-compute option of Wrapping node is off by default.
Wrap freezes if the basemesh contains isolated vertices.
Parameters of some node reset to default after removing them and undoing remove operation.
RepairGeom node does not remove isolated vertices if the input geometry is manifold and does not contain invalid polygons.
Released 17 October 2016
Converts a non-symmetrical model to a symmetrical one by changing its vertex coordinates. The input mesh is assumed to have a symmetrical topology.
Camera to World Axis Alignment
Skey in a 3D-viewport to align camera rotation to the nearest world axes. Lets you quickly align the camera to Front, Left, Right, Top, Bottom and Back views.
SelectPointPairs: clicking on a model to set a point sometimes missed the proper polygon and set the point behind it.
Fit to View with LoadGeom node being selected caused to crash if there were no geometry loaded.
SubdivideGeom: the node didn’t preserve materials.
RigidAlignment: the node ignored transformation of the left input.
Deletewhile connecting nodes caused to crash.
Wheel zoom was reversed (comparing to Maya) in 3D-viewport.
Released 5 September 2016
Wrap 3 is the first step toward node-graph based scan processing. By creating and connecting nodes it allows you to define a recipe of how a scan should be processed and later apply the recipe to dozens of new scans.
Projects can now be saved to .wrap file. Internally the file has JSON text format. The structure of the file is simple enough so that one can easily edit node parameters, create and connect nodes using text editor or Python script. That provides access to basic automation.
Undo/redo system allows undoing of most operations using
Enhanced Wrapping Algorithm
The wrapping algorithm is much faster and much more robust now.
When using SelectPointPairs node the left and right views can now be synchronized to speed up selection processing.
Enhanced Points Editor
While working with SelectPointPairs node editor one can click and drag a point and adjust its position. Any point can be removed with
Ctrl + LMB.
Enhanced Polygons Editor
When working with SelectPolygons node editor the following new operations are supported:
double clickselects a set of connected polygons
Shift + LMBor lasso selection adds new polygons to selection
Ctrl + LMBor lasso selection removes polygons from selection
Shift + double clicknear selected polygons will create a loop selection (only for manifold geometry)
-Polygroupbutton adds/removes selection from polygroup
-Materialbutton adds/removes selection from material
Node Graph Editor
Tabto show the list of all the nodes that can be created. To create the node choose one from the list or start typing its name and press
Returnwhen the desired node appears in look-up menu.
Click on an output then click on an input or vice-versa to connect two nodes.
Left-clickon connection then Disconnect from context menu to disconnect nodes.
MMBover a node to see node information and errors.
Hold a mouse over a node input to see input name and type.
At the bottom of Wrap window there is a time line. Every loading node (like LoadGeom or LoadImage) allows to select a sequence of file names. When you switch between the frames of the time line the loading nodes will be recalculated to load new file from the list. Each saving node (like SaveGeom of SaveImage) allows to insert # sign inside an output file name. For example ‘WrappedBasemesh###.obj’. When you click ‘Compute current frame’ Wrap will substitute # signs with the current frame number producing ‘WrappedBasemesh001.obj’ In order to process multiple frames in batch mode create and connect the output of your recipe to saving node then click ‘Compute frame range’ inside the node editor. Each frame is computed in parallel in separate process. If you want to compute multiple saving nodes at a time please use main menu
Nodes > Compute All.
Known Issues and Workarounds
Texture and Geometry projection
Texture and geometry projection slows down significantly when target geometry contains some huge polygons that overlap big number of small polygons. Such models are often produced by RC. You can remove large polygons beforehand.
Point selection and some other operations may suffer from loss of precision if a model has very small scale. The default units in Wrap are centimeters. You often face small-scale problem when trying to load scans that were saved in meters. Up-scaling the scan by changing ‘Scale’ parameter of LoadGeom node will take no effect. Up-scale the scan and save it in new units, then load saved file and use it.
There’s no termination button for wrapping process yet.