Большинство современных браузеров теперь поддерживают тег <canvas>
в HTML5, который делает в значительной степени то, что вы просите. Вы можете рисовать прямо на него, используя Javascript. Также в большинстве современных браузеров есть поддержка графического формата SVG, который снова можно манипулировать через Javascript, чтобы сделать некоторые очень интересные эффекты. Разница между canvas и SVG заключается в том, что canvas предназначен для растровой графики, а SVG - для векторов. Но оба хороши для 2D-рисования.
Если вам нужна библиотека или фреймворк, попробуйте что-то вроде Raphael , которая является хорошей библиотекой JS для рисования векторной графики. Он даже поддерживает более старые версии Explorer, что является бонусом. (если SVG недоступен, он возвращается к VML).