---
title: "Geometric edits"
canonical: "https://rmanwiki-25.pixar.com/space/RFM25/21889218/Geometric%20edits"
format: markdown
---
## The Shape editor

Click the **Edit Objects** button to open the editor.

![image](media://c4fb8b3f-186a-44c8-a908-7adae86a8b40)

The shape editor uses the same logic as the RLF Editor: create rules to modify any nodes matched by an expression.

![image](media://08b1266d-e251-4803-a2fc-e5dccf08e43f)

### Shape Edits

To create an edit, right-click in the edit field (teapot icon) and select the required options. The edit will appear in the field in plain English.

Relaunch the render to see your changes.

> ⚠️ When a parameter is set to default, it means that it will be omitted and the renderer's default value will be used. Some defaults may change based on your rendermn.ini settings. See docs for more details.

### Match Type

There are 3 matching engines:

- **exact**: this is the fastest and will only match a full path.
- **glob**: based on glob matching with the following tokens:
  - * : any number of character
  - ? : a single character
  - ** : any depth in the hierarchy
- **re**: [re2](https://github.com/google/re2/wiki/Syntax) regular expression. The most sophisticated, complex and potentially slow matching method.

> ⚠️ Rules are evaluated in the editor's order.
> ⚠️ 
> ⚠️ Because matching can be slow in large archives, the first matching rule will win and stop the process.

### Path Expression

You can either double-click in the field to type your expression or drag and drop from the alembic node list.

> ⚠️ To drag and drop, you must first select the node in the alembic node list.


## Convert a mesh to a subdivision surface

The chosen subdivision basis and interpolate boundary settings will define the shape's look.

|  | **mesh** | **catmull-clark** | **loop** | **bilinear** |
| --- | --- | --- | --- | --- |
| **Interpolate**<br>**Boundary**<br>**off** | ![image](media://eb26a7ef-ecff-4fee-8487-46c17d88f743) | ![image](media://27a925db-4dc6-4e9b-a841-51ff660cacce) | ![image](media://8d2ed4cb-9986-4556-aea6-1050edbe1e0d) | ![image](media://bcc12377-6f19-4054-b8ac-738dac98fb32) |
| **Interpolate**<br>**Boundary**<br>**ON** | ![image](media://eb26a7ef-ecff-4fee-8487-46c17d88f743) | ![image](media://d1efa563-63b4-485e-b7b5-06fadc8ec2da) | ![image](media://f8b602cc-482d-428a-9787-905e09dfaa4a) | ![image](media://bcc12377-6f19-4054-b8ac-738dac98fb32) |

## Convert a subdivision surface to a polygonal mesh

Subdivision surfaces typically don't have normals because they are automatically computed from the surface. When you convert them to polygons, you take the subdiv's control mesh and turn it into a poly mesh. By default, RenderMan will detect the absence of normals and create smooth normal (this default can be changed in rendermn.ini). But you can force a hard-normals render too.

| **subdiv** | **polymesh smooth** | **polymesh hard** |
| --- | --- | --- |
| ![abc_s2m_subd.png](media://3db118ce-1f93-492c-a267-fc4421257e09) | ![abc_s2m_smooth.png](media://4ecd9acf-0fbd-4ca4-bb5b-e6f385a7957b) | ![abc_s2m_hard.png](media://7a8e245e-62e0-49b5-931b-03a6bd7a941f) |