Apparatus for outputting haptic effects, comprising: a haptic device; one or more processors in communication with the haptic device and configured to determine a plurality of basis haptic effects to be output by the haptic device, a basis haptic effect being an elemental haptic effect that can be used as a component of more complex haptic effects, to run a first component that is configured to assign a set of basis haptic effects from the plurality of basis haptic effects to a time slot of a plurality of time slots, wherein the plurality of time slots are a plurality of respective time intervals, and wherein the set of basis haptic effects are associated with a set of respective basis haptic effect signals, to run a second component having resources for simultaneously outputting the set of basis haptic effect signals in the time slot to the haptic device, such that the set of corresponding basis haptic effects assigned to the time slot are output simultaneously by the haptic device, wherein the resources are represented as a plurality of effect slots that are assigned to the set of basis haptic effect signals, wherein a total number of the plurality of effect slots indicates a total number of basis haptic effect signals that the second component is capable of outputting simultaneously in each time slot, and to run a resource manager in communication with the second component, the resource manager configured to manage the plurality of effect slots representing the resources of the second component by: determining respective priorities between the basis haptic effect signals assigned to the plurality of effect slots when the basis haptic effect signals are being output by the second component to the haptic device, wherein the respective priorities are determined based on respective amounts of time remaining for outputting the basis haptic effect signals, receiving an additional basis haptic effect signal when no effect slot is currently available for the additional basis haptic effect signal, determining, based on the respective priorities, which one of the basis haptic effect signals to replace with the additional basis haptic effect signal in the effect slots, and assigning the additional basis haptic effect signal to the effect slot of the basis haptic effect signal that is determined to be replaced. a haptic device; one or more processors in communication with the haptic device and configured to determine a plurality of basis haptic effects to be output by the haptic device, a basis haptic effect being an elemental haptic effect that can be used as a component of more complex haptic effects, to run a first component that is configured to assign a set of basis haptic effects from the plurality of basis haptic effects to a time slot of a plurality of time slots, wherein the plurality of time slots are a plurality of respective time intervals, and wherein the set of basis haptic effects are associated with a set of respective basis haptic effect signals, to run a second component having resources for simultaneously outputting the set of basis haptic effect signals in the time slot to the haptic device, such that the set of corresponding basis haptic effects assigned to the time slot are output simultaneously by the haptic device, wherein the resources are represented as a plurality of effect slots that are assigned to the set of basis haptic effect signals, wherein a total number of the plurality of effect slots indicates a total number of basis haptic effect signals that the second component is capable of outputting simultaneously in each time slot, and to run a resource manager in communication with the second component, the resource manager configured to manage the plurality of effect slots representing the resources of the second component by: determining respective priorities between the basis haptic effect signals assigned to the plurality of effect slots when the basis haptic effect signals are being output by the second component to the haptic device, wherein the respective priorities are determined based on respective amounts of time remaining for outputting the basis haptic effect signals, receiving an additional basis haptic effect signal when no effect slot is currently available for the additional basis haptic effect signal, determining, based on the respective priorities, which one of the basis haptic effect signals to replace with the additional basis haptic effect signal in the effect slots, and assigning the additional basis haptic effect signal to the effect slot of the basis haptic effect signal that is determined to be replaced. determining respective priorities between the basis haptic effect signals assigned to the plurality of effect slots when the basis haptic effect signals are being output by the second component to the haptic device, wherein the respective priorities are determined based on respective amounts of time remaining for outputting the basis haptic effect signals, receiving an additional basis haptic effect signal when no effect slot is currently available for the additional basis haptic effect signal, determining, based on the respective priorities, which one of the basis haptic effect signals to replace with the additional basis haptic effect signal in the effect slots, and assigning the additional basis haptic effect signal to the effect slot of the basis haptic effect signal that is determined to be replaced.