# Project node
Projects vector A onto vector B.
**Controls**
|Options|Description|
|---|---|
|Vector2, Vector3|Vector type to use for calculation|
**Inputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|vector A|Dynamic vector|none|Vector to project|
|vector B|Dynamic vector|none|Vector on which vector A will be projected|
**Outputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|vector|vector3|None|Output vector|
**ShaderInc location**
`res://addons/ShaderLib/Maths/Maths.gdshaderinc`
**Method signature**
`vec2 project_2d(vec2 a, vec2 b)`
`vec3 project_3d(vec3 a, vec3 b)`
**Parameters for 2D**
|Name|Type|Description|
|---|---|---|
|a|vec2|Vector A|
|b|vec2|Vector B|
**Parameters for 3D**
|Name|Type|Description|
|---|---|---|
|a|vec3|Vector A|
|b|vec3|Vector B|
___