Сам же сказал - софт, просто генерирует промики и либо ты вставляешь ( либо прога сама рассчитывает и подбирает валид)