# Software and Code

## Guided Mesh Normal Filtering

GuidedDenoising is a C++ library for mesh denoising, where the noise type could be any types like gaussian noise and impulsive noise. This library also includes the implementations of some classical denoising algorithms include bilateral mesh denoising, Non-iterative, feature-preserving mesh smoothing, Fast and Effective Feature-Preserving Mesh Denoising, Bilateral Normal Filtering for Mesh Denoising, Mesh denoising via L0 minimization. GuidedDenoising is released under GNU LGPL V3 License.

## Local Barycentric Coordinates

LBC is a C++ library for computing local barycentric coordinates. LBC is released under GNU General Public License.

## $$\ell_1$$ Subdivision Scheme for noisy curve and surface datas

$$\ell_1$$-Subdivision is a Python library for curve and surface denoising.

Download: $$\ell_1$$-Subdivision code

## Multichannel Total Variation Minimization

MTV—$$\ell_1$$ Solver is matlab library for solving multichannel total variation based models, especially for image restoration.

Download: MTV—$$\ell_1$$ Solver code

## Convex Active Contour for Interactive Image Segmentation

CAC—Segmentation is a software for interactive image segmentation by inputing foreground and background seeds as shown in the above figures as red curve and blur curve.

## Low-poly illustration generation from images

Algorithm overview. Given an input image (a), we first sample pixels and rank them according to their importance of preserving the image structure (b). We can see that the points on the edges are much more important. Then a Delaunay triangulation is constructed from the first K points according to user's selection (c). Finally, we render the color of each triangle to generate a low-poly illustration with a artistic looking.

## HF-FCN

(a) Input aerial image. (b - c) Feature maps generated from shallow layers with fine spatial resolution but low level semantic information. (d - e) The feature maps at middle layers correspond to certain intermediate-level features. (f - g) Deep layers generate coarse feature maps with high-level semantic information. (h) Integrating all these feature maps, we get predicted labelling map.

## Upright orientation estimation

Upright Orientation of 3D Shapes with Convolutional Networks.

## Computational design of wind-up toys

(a) Input model with user-provided parts geometry and motion; (b) wind-up mechanism constructed by our method; (c) 3D-printed parts (top two rows) and spring motor (bottom); and (d) assembled toy (9.2 x 6.7 x 6.4cm^3; and 16.1g shell + 7.9g motor + 7.3g mechanism).

## FrameFab: Robotic Fabrication of Frame Shapes

Given a frame shape (a), we propose an algorithm for generating a feasible fabrication sequence of struts which guarantees that the already-printed part is in a stable equilibrium state and that the extrusion head avoids collision with the printed part at all fabrication stages. This is verified by a built prototype robotic fabrication system consisting of a 6-axis KUKA robotic arm with a customized extrusion head: (b) and (c) are intermediate fabrication states and (d) is the final fabrication object for the given frame shape (a).

## Projective Feature Learning for 3D Shapes with Multi-View Depth Images

We propose an projective feature learning method, called MVD-ELM, for learning 3D shape features from multi-view depth images. (a) Our network ensures that the unprojection of the feature maps in each layer together form a reconstruction of the input 3D shapes. (b) Point clouds reconstructed from the maximally activated regions of feature maps (neurons). (c) Visualization of cropped shape parts according to the maximally activated neurons.

## Garment Personalization via Identity Transfer

We present a method for transferring the identity of a given subject to a target image for try-on experience of clothes. The method involves cloning the user's identity into a catalogue of model images wearing the desired garments.

## Animated Construction of Line Drawings

Guided by sketching principles, we derive a plausible stroke order of an input vectorized line drawing (left) to automatically animate the sketching (right top). A user study shows that the inferred order is comparable to the order used by an artist (right bottom).

## Feature-Aligned Shape Texturing

The essence of a 3D shape can often be well captured by its salient feature curves. In this paper, we explore the use of salient curvesin synthesizing intuitive, shape-revealing textures on surfaces. Our texture synthesis is guided by two principles: matching the direction of the texture patterns to those of the salient curves, and aligning the prominent feature lines in the texture to the salient curves exactly. We have observed that textures synthesized by these principles not only fit naturally to the surface geometry, but also visually reveal, even reinforce, the shape’s essential characteristics. We call these feature-aligned shape texturing. Our technique is fully automatic, and introduces two novel technical components in vector field-guided texture synthesis: an algorithm that orients the salient curves on a surface for constrained vector field generation, and a feature-to-feature texture optimization.

## Surface Mesh Framework

We provide a simple code framework for surface mesh processing.This framework mainly contains following functions:
1. Open and save mesh file. We support general polygon mesh, such as traingle and quad mesh.
2. Basic rendering modes. Especially combining the wireframe and flat shading modes is very userful for doing geometric computing research.
3. Capture rendering region. Save the rendering region as images.
4. Pick point, vertex, edge, face on the input mesh.

Third party librires: OpenMesh and Qt. Rencently it is comppiled with Visual Studio 2013.

## Volumetric Mesh Framework

We provide a simple code framework for volumetric mesh processing.This framework mainly contains following functions:
1. Open and save mesh file. We support tetrahedral and all-hex mesh in "OVM" file format. This format is supported by OpenVolumeMesh. You can transfer the "VTK" file into "OVM" by OpenFlipper.
2. Basic rendering modes. Especially combining the wireframe and flat shading modes is very userful for doing geometric computing research. Also the interier elements can be shown by changing slider bar on the left.
3. Capture rendering region. Save the rendering region as images.

Third party librires: OpenVolumeMesh, OpenMesh and Qt. Rencently it is comppiled with Visual Studio 2013.

## Simplex Assembly.

Global seamless parameterization. Compared with [Diamanti et al. 2015], our method maintains the original singularities and has much lower edge-curl values.

## PolyCube (Part)

The volumetric PolyCube-map for the Elephant model (48k tetrahedrons). Our method took 17 seconds to achieve the PolyCube-map whose maximum isomeric distortion is $$11.7$$ and the number of corners is 176. (b) The all-hex meshing result from (a). The hexahedral mesh has 46994 hexes, and the minimal and average scaled Jacobian are 0.231 and 0.887. The hexes are color-coded by their scaled Jacobian values, with white being optimal. PolyCube-maps for the Buste model using different Gaussian smoothing kernel $$\sigma$$ are shown in (c), (d) and (e). From (c) to (e), the results have 128 ($$\sigma = \bar{l}_e$$ where $$\bar{l}_e$$ is the average boundary edge length of the input mesh), 72 ($$\sigma = 1.5\,\bar{l}_e$$) and 36 ($$\sigma = 2\,\bar{l}_e$$) corners and the average isometric distortions are 1.50, 1.53 and 1.57, respectively.

## Low isometric distortion spherical parameterizations

The left mesh is the input genus-0 surface and the right one is the output spherical parameterization result, that is generated by our AHSP method.

## Sphere-based cut construction for planar parameterizations

Planar parameterizations of three models. Our constructed cuts are shown by black lines, and the feature points of our clustered regions are shown by green points. The parameterizations are generated by AQP [Kovalsky et al. 2016]. The isometric distortion metric (which is defined in Section 4) of each triangle is colored with white being optimal, and the models are textured by a checkerboard image. The first line of the text below the mesh indicates the maximum, average and standard deviation of the isometric distortion over all triangles, and the second line indicates the proportions of edge number and edge length of the cut.