Choose local or world input
A local point describes a location relative to a frame. A world point describes a location in the world’s coordinates. Choose the input space before entering the components; the output heading names the destination space.
The frame position is always entered in world coordinates. Changing the input-space selector keeps the numeric fields you entered and changes their interpretation. Use World round trip for a prepared inverse example.
A point includes position; a vector does not
The default frame is at (10, 2, -4), rotated 90 degrees about Y. The local input is (3, 1, 2). Its rotated components are (2, 1, -3), so the world point is (12, 3, -7). Interpreted as a vector, the result stays (2, 1, -3): no position is added.
Try Translation only. The point becomes (13, 3, -2), while the vector remains (3, 1, 2). Try Identity frame to remove both the rotation and translation. These examples make the effect of each part of the transform easier to inspect.
Convert back with the inverse transform
For a world point, the inverse first accounts for the frame’s position and then applies the inverse rotation. A vector needs only the inverse rotation. The round-trip rows apply the opposite operation to each result, so you can compare them with the original input.
A successful numerical round trip checks a coordinate calculation. It does not prove that the chosen frame, input space, or gameplay action is the one your feature intended. Always identify which object owns the reference frame.
Rotation order and angle units matter
This editor uses the XYZ order of CFrame.Angles. The official CFrame reference defines Angles as equivalent to fromEulerAnglesXYZ, with X × Y × Z composition. It separately defines point transformations and rotation-only vector transformations.
Angles in the fields are degrees. The export uses math.rad before constructing the frame. Changing several angles is sensitive to composition order; do not substitute the YXZ order of CFrame.fromOrientation and expect every result to match.
Read the sketch as a coordinate aid
The colored axes follow the frame’s orientation. The gray dashed axes belong to world space, and the amber marker is the interpreted point in world coordinates. The view auto-fits and uses illustrative axis lengths so you can inspect the relationship between the frame and point.
The sketch is an isometric projection, not a Roblox viewport or a physics preview. Two different three-dimensional locations can overlap in a projection. Read the numerical result when an exact coordinate matters.
Copy a complete numerical exercise
Copy or download the generated Luau, place it in a regular Script in ServerScriptService in a practice place, and inspect Output. It constructs the frame and input, then prints point/vector results and their inverse round trips. It does not move a Part or Model.
The browser uses double-precision numerical matrices. Displayed values use nine significant digits; exported inputs retain their numeric precision. Roblox output may differ slightly due to floating-point representation. The generated example has been documentation-reviewed; execution in Studio has not been verified here.
All nine numeric fields must be finite. Coordinates are limited to ±1,000,000 and angles to ±360 degrees as editor limits. Invalid or empty fields remove results and disable export. Values reset on reload.
Continue with the matching development task
Read the CFrame guide for context and a complete reference-frame exercise. Use the Vector3 calculator for distance and direction between points already in the same space. For applying a transform to a Model, continue with the Model pivot and tween guide.
Common questions
What is the difference between PointToWorldSpace and VectorToWorldSpace?
PointToWorldSpace rotates a local point and includes the frame’s position. VectorToWorldSpace rotates the components while ignoring the frame’s position. The converter shows both interpretations of the same input.
How do I convert a world point back to local space?
Choose World to local to use PointToObjectSpace for the point. The corresponding vector conversion is VectorToObjectSpace. The tool also shows inverse round trips for both.
Does the rotation use degrees or radians?
Enter degrees in the editor. The exported Luau converts them with math.rad and uses CFrame.Angles, whose rotation order is XYZ.
Does this tool run Roblox or move my objects?
No. It calculates numerical transforms in the browser and exports an Output exercise. The sketch is illustrative; the tool does not inspect a place, move objects, or test physics.