generate a full point matrix rather than a flat list