mmodeler User Guide

mmodeler User Guide

English | 日本語

mmodeler

Overview

mmodeler is a Blender-inspired 3D modeling tool optimized for touch operation on smartphones and tablets. Built with WebGPU and JavaScript, it allows you to control the camera, edit meshes, add primitives, save/load files, and perform organic shaping using a dedicated Sculpt Mode—all through intuitive gesture-based controls.

How to Run

mmodeler does not depend on external libraries or servers; once launched, everything runs locally in your browser.

You can access the tool here:
https://jun-mizutani.github.io/webg/samples/mmodeler.html

Mobile Control System

To address the "finger occlusion" problem (where your finger hides the area being edited), mmodeler utilizes a "Preview then Confirm" workflow.

Basic Gestures

The most important operation is the double-tap on geometry, which opens the Command Palette to execute most functions.

Special Button: Top-Left "↑" Button

The role of this button changes depending on the mode:


Command Palette

A 4x4 grid menu opened by double-tapping. In Object/Edit Mode, you can cycle through 4 pages using the Next button. In Sculpt Mode, it switches to a specialized single-page palette. The palette is automatically positioned based on the tap location to avoid hiding the target area.

Page 1: Basic Editing & Axis Constraints

Transform operations follow the flow: Select Tool $\rightarrow$ Drag to Preview $\rightarrow$ Tap to Confirm.

Page 1: Basic Editing & Axis Constraints

ButtonDescription
GMove: Move selection. Drag to position, then tap to confirm.
EExtrude: Extrude selected faces/vertices. Drag to adjust distance, then tap to confirm.
VertVertex Select: Switch selection mode to vertices. Used for moving, deleting, or adding vertices.
XX-Axis: Constrain the next transform to the world X-axis. Press again to return to Free.
RRotate: Rotate selection. Drag to set angle, then tap to confirm.
GGEdge Slide: Slide a vertex along an edge (only for midpoint vertices).
FaceFace Select: Switch selection mode to faces. Used for extruding, deleting, or loop cutting.
YY-Axis: Constrain the next transform to the world Y-axis. Press again to return to Free.
SScale: Scale selection. Drag to set multiplier, then tap to confirm.
CutLoop Cut: Split quad faces. For single faces, pick direction via preview line, then tap to confirm.
UndoUndo: Revert the last operation (transform, primitive addition, etc.).
ZZ-Axis: Constrain the next transform to the world Z-axis. Press again to return to Free.
NextSwitch to the next page.
ChainChain Select: Select a sequence of vertices connected by quads based on the chosen direction.
RedoRedo: Re-apply an undone operation.
NNormal Axis: Constrain transform to the average normal of selected faces/vertices.

Page 2: Selection, View & Mode Switching

Page 2: Selection, Subdivision & View

ButtonDescription
CatmCatmull-Clark: Smoothly subdivide the entire mesh for organic shapes.
ASelect All: Select all objects (Object Mode) or all vertices/faces (Edit Mode).
AddAdd Vertex/Face: Create a face (if 3-4 vertices selected), otherwise switch to Add Vertex tool.
PrProjection: Toggle between Perspective and Orthographic views.
SubdSubdivide: Subdivide quad-only meshes to increase polygon density.
InvInvert: Invert the current selection.
DelDelete: Delete selected objects, vertices, or faces.
WireWireframe: Toggle wireframe view. Allows selecting hidden vertices when ON.
MX-Mirror: Enable symmetric editing across the X=0 axis.
HalfSelect X<0: Select elements with a negative X coordinate.
SclptSculpt Mode: Enter Sculpt Mode with the Draw brush (positive direction).
SmthSmooth Shading: Enable smooth shading (visual only; geometry is unchanged).
LensLens: Switch camera focal length presets.
NextSwitch to the next page.
LoopLoop Select: Select a loop of vertices starting from a loop-cut midpoint.

Page 3: File & Scene Management

Page 3: File & Scene Management

ButtonDescription
LoadLoad: Load a model file or saved ModelAsset JSON from local storage.
OOrigin: Reset the active object's origin to the world origin.
CoodCoordinates: Show/edit vertex coords (Edit Mode) or Brush settings (Sculpt Mode).
InfoInfo: Display object size (Bounding Box), vertex count, and face count.
JsonSave JSON: Save the scene as a compressed .json.gz file.
ShotScreenshot: Save the current canvas as an image.
GlbSave GLB: Export the scene as a GLB file for other tools.
JoinJoin: Combine multiple selected objects into one.
NextSwitch to the next page.
NewNew Scene: Clear the scene and start over.

Sculpt Mode Specialized Page

In Sculpt Mode, a specialized single-page palette replaces the standard one.

Sculpt Mode Specialized Page

ButtonDescription
DrawDraw Brush: Move vertices along the normal. Inflates with Sclp+, deflates with Sclp-.
BrshBrush Settings: Edit Radius, Strength, and Falloff Shape via overlay.
PrProjection: Toggle between Perspective and Orthographic views.
BlurBlur Brush: Average vertices to smooth the surface.
MX-Mirror: Apply sculpt deformation symmetrically across the X=0 axis.
WireWireframe: Toggle wireframe display.
GrabGrab Brush: Pull vertices in the direction of cursor movement.
Sclp+Positive: Set brush direction to positive (e.g., inflate).
UndoUndo: Revert the last stroke or operation.
SmthSmooth Shading: Enable smooth shading (visual only).
PinchPinch Brush: Squeeze vertices toward the cursor center.
Sclp-Negative: Set brush direction to negative (e.g., deflate).
RedoRedo: Re-apply an undone operation.
EditReturn to Edit Mode: Leave Sculpt Mode and go back to Edit Mode.

Page 4: Primitives

Page 4: Primitives and Segments


Detailed Feature Specifications

Transform Confirmation Flow

For G/R/S/E/GG operations:

  1. Drag: Real-time preview of the transformation. The preview is maintained even after releasing the finger.
  2. Adjust: Drag again to fine-tune the position from the previous point.
  3. Confirm: Short tap to finalize the transform and commit it to history.

Sculpt Mode Details

Box Selection

  1. Double-tap an empty area to start.
  2. Drag to define the area. Upon releasing, the box remains visible ("Awaiting Confirmation").
  3. Adjust: Drag again to redraw the box if the area is incorrect.
  4. Confirm: Tap to select all elements within the box.

Loop Cut

Perform a Cut by selecting a quad face in Edit Mode.

Loop Selection

Select a chain of midpoint vertices created by a Loop Cut.

Chain Selection

Select a sequence of vertices connected by quad faces.

Subdivision

Selection & Display

View Dock

Quickly switch views using buttons at the edge of the screen:

Switching views resets the camera target distance and resets the view roll to 0.

Blender Integration

Exchange data via .json or .json.gz using the provided addon (blender_modelasset_io.py).