                             defaults[index] = value
                         }
                     }
-                    names.append(name)
+                    attributeNames.append(name)
                     params[name] = defaults
                 }
             }

            return nil
        }
        var params = [String:Any]()
        var names = [String]()
        if let attrs = info["attr"] as? [[String:Any]] {
            for attr in attrs {
                if let name=attr["name"] as? String,

            return node
        }

        let buffers = attributeNames.map({ (name) -> MTLBuffer in
            let values = params[name] as! [Float]
            let length = MemoryLayout.size(ofValue: values[0]) * values.count
            let buffer = context.device.makeBuffer(length: (length + 15) / 16 * 16, options: .storageModeShared)
