Restricting Blood Flow

Hello I am currently working on a project that calls for a leg amputation and application of a tourniquet using Unity. I have the amputation somewhat modelled in Pulse but I am unaware of how to simulate the tourniquet. I assume there is a way I can restrict blood flow to a compartment during run time but I have not found it. Thank you in advance for the help.


Generally, our best recommendation for tourniquet is to reduce the associated hemorrhage to 0 or near 0 depending on your use case.


I have tried that but in my case I am not currently using hemorrhage. I was under the impression that hemorrhage would not be very accurate to a full amputation. Would a hemorrhage of 1.0 be the same as a full amputation?

I am currently setting the Leg Outflow to Ground to simulate bleeding out. Is that wrong to do?

A severity of 1.0 is probably sufficient as it will divert nearly all of the blood flow to the leg to the hemorrhage. Which is essentially what you are doing anyway. A hemorrhage path sets up a flow to ground with a resistor specified by the severity. Alternatively, you can specify the flow, which sets a path to ground with a flow source. The danger here is that as pressure drops, the flow to the leg is insufficient to meet the needs of the flow source and the engine will error. You could also add a very small hemorrhage to the vena cava compartment to represent some of those losses associated with full amputation.

If I am understanding correctly, you have changed the circuit itself to go to ground correct? If that is the case, then you could add a pressure source and vary the pressure to represent nothing happening and the application of the tourniquet. We do not have an API call for that, but we have talked about adding this feature.

I hope that is helpful.


Thank you. That is very helpful. I will look into the varying pressure source and see if I can figure anything out on it

Also I guess one more question I have is if there is any way to access/change the compartment data from the api in a script?

There is not a way to access/change compartment data from the API
Compartments are just the interface to the circuit components that make up the cardiovascular system.
Compartments are read only to the end user

If I were going to implement an amutation scenario, I would create a hemorrhage of severity 1.0 on the right leg as Rachel said. That will create a new path from the right leg to ground and divert the majority of the blood flow to the right leg to ground (out of the body).

I would probably also create and add an amputation action (the only input would be which compartment to remove, It would only take one enumeration of Left Leg, Right Leg, Left Arm, Right Arm) to be added to pulse along with the hemorrhage action. This amputation action would effectively remove the leg from the circuit somehow. The first thing I would probably try in the implementation of this action would modify the right leg venus resistance to be super high, so no arterial blood flow to the leg could go back into the vena cava. I would probably also set the right leg volume and volume baseline to now be zero (or a pretty small volume), as the leg cannot hold much, if any blood. You would probably also need to recalculate\increase the capacitance on the right leg too.

The hemorrhage path should still be there, so blood can still freely flow out of the body, and you can still reduce the hemorrhage severity to zero (apply the tourniquite) slow the bleed would stop. And the cv circuit should stabilize…with out the right leg

Again, I am not exactly sure how I would dynamically (via action) remove a limb from Pulse. I think what I described would work… but there is always something that gets you… Maybe we would need to actually remove the right leg to vena cava path…