# Can you use Geometry nodes to subdivide a face but only along certain edges?

As the question says, I would like to subdivide a face using geometry nodes but only in one direction (the direction with the longer edges). Using standard tools I would just select the edges and subdivided and that would divide the face as well, is this possible using geometry nodes?

Basically I want to turn the first photo into the second using geometry nodes as part of a larger project (and I can't use a grid as the project will have the original geometry being extruded in the viewport) and I want it to automatically subdivide the longer faces. • No, unfortunately this is not possible with Geometry Nodes without replacing the object with new geometry. Jan 8 at 17:24

As noted in the official documentation, the node Subdivide Mesh always subdivides a face at each edge:

The Subdivide Mesh node adds new faces to mesh geometry using a simple interpolation for deformation.

Therefore, there is no way to limit the subdivision of a face to a certain area or range with a simple node.

However, there are some tricks that use Geometry Nodes to force a subdivision (albeit some with dubious results), but this is always done by creating a new geometry:

Using the setup pictured below and outlined in this video, you can stretch curve lines along the faces' x and z axis:   Next, edges are compared to get the longest of the two as per your requirements. A boolean value is captured on one set of lines to switch instances later: Next, a ray source and ray target are created using the smallest of the x and z scales as the prior setup isolated the largest axis upon which the perpendicular axis will be instanced.

A narrow grid (target) and line (source) are created with two orientations that are switched via the prior captured boolean value. This is to account for the change in orientation when the largest curves are forced from the initial, differing x and z axis of each face: Finally, the target face normals are sampled with the source edge index and the same index is used to sample the edge's position for the raycast's inputs. The source edges are extruded using the "Hit Normal" as the offset and the "Hit Distance" as the scale: The result works as long as each face corner is 90°, however the angle between the faces themselves doesn't matter:  However, because there are two targets per corner (enlarged here for clarity): the other, undesired face might be used as the "Hit Normal," but slightly moving the edge can easily correct it: Still, if your use case is actually just one plane, it should work flawlessly. The inconsitencies with this setup come from using more than one connected plane only. The distance between the loop cuts can be adjusted via the resample rate of the longer axis:  