looking for simplified version of motion capture for simplified situation where objects are solid and have no joint (no internal degree of freedom)
Fast way could be to convert your image to HSV format and then apply color thresholding as you have mentioned. Here is a short snippet which could get you started quickly. 

import cv2 as cv2
import numpy as np

fn = 'image_or_videoframe'
# OpenCV reads image with BGR format
img = cv2.imread(fn)
# Convert to HSV format
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# Choose the values based on the color on the point/mark
lower_red = np.array([0, 50, 50])
upper_red = np.array([10, 255, 255])
mask = cv2.inRange(img_hsv, lower_red, upper_red)

# Bitwise-AND mask and original image
masked_red = cv2.bitwise_and(img, img, mask=mask)


in this case, the red is filtered in the image and masked_red would contain only the red pixels in the image.

After the filtering, depending on the requirement you can use houghlines to detect the lines. It is not trivial but it is definitely doable.

Hope this helps and all the best :)