paper

PushPull++

  • Authors:

📜 Abstract

PushPull tools are implemented in most commercial 3D modeling suites. Their purpose is to intuitively transform a face, edge, or vertex, and then to adapt the polygonal mesh locally. However, previous approaches have limitations: Some allow adjustments only when adjacent faces are orthogonal; others support slanted surfaces but never create new details. Moreover, self-intersections and edge-collapses during editing are either ignored or work only partially for solid geometry. To overcome these limitations, we introduce the PushPull++ tool for rapid polygonal modeling. In our solution, we contribute novel methods for adaptive face insertion, adjacent face updates, edge collapse handling, and an intuitive user interface that automatically proposes useful drag directions. We show that PushPull++ reduces the complexity of common modeling tasks by up to an order of magnitude when compared with existing tools.

✨ Summary

Technical contribution

PushPull++ is a local mesh-editing system for rapid modeling of plane-dominant man-made objects. It generalizes conventional push/pull operations to arbitrary planar polygonal meshes, including meshes with boundaries and non-manifold edges. The method addresses three problems: deciding where new faces are needed, updating neighboring geometry while preserving planarity, and maintaining valid topology when edges or faces collapse.

The system adaptively inserts faces according to angular thresholds between the target plane and adjacent face planes. If an adjacent plane can support the modification, the existing face is updated; otherwise, a new face is inserted with an orientation derived from the user’s drag direction. A generalized local mesh-update procedure computes new vertices by intersecting planes and can split a high-valence vertex into multiple vertices when required. A stepwise plane-sweep procedure detects impending collapse events and applies the modification through intermediate planes, preventing local self-intersections and enabling cleanup of zero-area faces, zero-length edges, and unused vertices.

The same framework supports simultaneous modification of multiple faces, which enables edge and vertex dragging. To avoid order-dependent results, simultaneous operations use a shared global direction and evaluate target-plane relationships consistently. The interface proposes useful drag directions based on face normals, world axes, adjacent-face directions, and adjacent edges; it also integrates polyline drawing and polygon splitting.

In the authors’ expert-user comparison, PushPull++ required fewer interactions than AutoCAD, SketchUp, and Maya for the tested modeling tasks. Its principal advantage was in edits involving slanted surfaces and added details, where competing tools often required manual construction, boolean operations, or low-level vertex manipulation. The implementation reportedly maintained interactive performance of at least 30 updates per second on mainstream hardware and scaled linearly with the number of affected faces.

Subsequent influence

The paper is cited as prior work in later research on interactive procedural modeling and creative-design systems. For example, CityEngine: An Introduction to Rule-Based Modeling lists PushPull++ among its related modeling references, and Computational Support for Creative Design cites it in the context of interactive geometry and architectural modeling. (ouci.dntb.gov.ua)

The available search evidence indicates continued scholarly recognition of the method, but does not establish that the exact PushPull++ algorithms were directly incorporated into a major commercial modeling product. Later industry tools provide related push/pull functionality—for example, Rhino documents face-based push/pull operations—but the available documentation does not attribute that functionality to this paper. (rhino3d.com)

The paper’s own stated limitations remain relevant: its intersection prevention is local rather than global, and its representation is designed for planar rather than curved surfaces.