def method_missing(meth, *args, &block)
      if args.size == 1 and meth =~ /^(.+)=$/
        self[$1.to_sym] = args[0]
      else
        super meth, *args, &block
      end
    end
def method_missing(meth, *args, &block)
      if args.size == 1 and meth =~ /^(.+)=$/
        self[$1.to_sym] = args[0]
      else
        super meth, *args, &block
      end
    end
Allow
   `shader.blob_frequency = 5`
 to map to
   `shader["in_BlobFrequency"] = 5`
 TODO: define specific methods at compile time, based on parsing the source?