The ToolSimulator component allows a tool to be used without needing it to be equipped by a user. You can make use of a tool's primary and secondary actions but not context menu actions.
You need to provide a reference to the tool component that you want to simulate, and also a reference to a simulating user. You can then make use of the Primary, Secondary, Strength and Axis properties.
For example, providing a reference to a MaterialTool and then making use of the Primary property will allow you to apply materials to objects in front of the tool.