BufferGeometry.applyMatrix4 throws for normals from InterleavedBufferAttributes

Describe the bug

Calling applyMatrix4 on a BufferGeometry may throw a TypeError if the attributes are from an InterleavedBufferAttribute object, as InterleavedBufferAttribute doesn’t have applyNormalMatrix or transformDirection.

To Reproduce

Steps to reproduce the behavior:

  1. Go to ‘…’
  2. Click on ‘….’
  3. See error


// code goes here

Live example

Expected behavior

A clear and concise description of what you expected to happen.


If applicable, add screenshots to help explain your problem (drag and drop the image).


  • Device: [Desktop]
  • OS: [MacOS]
  • Browser: [Chrome]
  • Three.js version: [dev, r121]

1 possible answer(s) on “BufferGeometry.applyMatrix4 throws for normals from InterleavedBufferAttributes