Nell: An SVG Drawing Language
By Stefan Hollos and J. Richard Hollos
()
About this ebook
Nell is a language for describing two dimensional vector drawings. We have been using versions of the language for several years to create illustrations for books, webpages and various art projects. It can even be used as a tool for physics and math simulations and experiments.
We created the language because of our frustration with how tedious and time consuming it can be to create complex vector drawings. Why sit in front of a screen for hours clicking and dragging with a mouse when you can spend a few minutes thinking about your drawing, solving a few geometry and trigonometry problems and then writing a simple program that will create the drawing for you? It's less tedious and a lot more fun, plus you get to sharpen your math and programming skills.
The book comes with software that translates a drawing definition in the Nell language into an SVG file. The software is open source with a GPL license. It can be downloaded from the book's website.
Stefan Hollos
Stefan Hollos is a physicist and electrical engineer by training, and enjoys anything related to math, physics, engineering and computing. He also enjoys creating music and visual art, and being in the great outdoors. He is the author of 18 books.
Read more from Stefan Hollos
Creating Rhythms Rating: 5 out of 5 stars5/5Creating Melodies Rating: 0 out of 5 stars0 ratingsInformation Theory: A Concise Introduction Rating: 0 out of 5 stars0 ratingsCoin Tossing: The Hydrogen Atom of Probability Rating: 0 out of 5 stars0 ratingsThe Enigma of the Crookes Radiometer Rating: 0 out of 5 stars0 ratings
Related to Nell
Related ebooks
3D Graphics Programming Theory Rating: 0 out of 5 stars0 ratingsProgramming the TI-83 Plus/TI-84 Plus Rating: 0 out of 5 stars0 ratingsAlgorithms for Visual Design Using the Processing Language Rating: 5 out of 5 stars5/5Retro Gaming with Raspberry Pi: Nearly 200 Pages of Video Game Projects Rating: 0 out of 5 stars0 ratingsCinder Creative Coding Cookbook Rating: 0 out of 5 stars0 ratingsInkscape 0.48 Illustrator's Cookbook Rating: 0 out of 5 stars0 ratingsDesign pattern Third Edition Rating: 0 out of 5 stars0 ratingsGeometric Patterns from Patchwork Quilts: And how to draw them Rating: 5 out of 5 stars5/5Canvas Cookbook Rating: 0 out of 5 stars0 ratingsMastering openFrameworks: Creative Coding Demystified Rating: 0 out of 5 stars0 ratingsBeginning Graphics Programming with Processing 3 Rating: 0 out of 5 stars0 ratingsProcessing 2: Creative Programming Cookbook Rating: 4 out of 5 stars4/5Hacking Design Rating: 0 out of 5 stars0 ratingsOpt Art: From Mathematical Optimization to Visual Design Rating: 0 out of 5 stars0 ratingsSign Language: A Painter's Notebook Rating: 0 out of 5 stars0 ratingsMastering Adobe Captivate 6 Rating: 5 out of 5 stars5/5Emerging Scholar: Gratitude of an Award Recipient Rating: 0 out of 5 stars0 ratingsAndroids: Build Your Own Lifelike Robots Rating: 0 out of 5 stars0 ratingsTI-83 Plus Graphing Calculator For Dummies Rating: 0 out of 5 stars0 ratingsBasic Guide to Programming Languages Python, JavaScript, and Ruby Rating: 0 out of 5 stars0 ratings3D Character Rigging in Blender: Bring your characters to life through rigging and make them animation-ready Rating: 0 out of 5 stars0 ratingsHigh Performance Loudspeakers Rating: 4 out of 5 stars4/5Unreal Development Kit Beginner’s Guide Rating: 1 out of 5 stars1/5Lisp Programming Language Rating: 0 out of 5 stars0 ratingsData Visualization with D3 4.x Cookbook - Second Edition Rating: 0 out of 5 stars0 ratingsConceptual Programming: Conceptual Programming: Learn Programming the old way! Rating: 0 out of 5 stars0 ratingsRails: Novice to Ninja: Build Your Own Ruby on Rails Website Rating: 4 out of 5 stars4/5Pattern Design Rating: 0 out of 5 stars0 ratings
Software Development & Engineering For You
Python For Dummies Rating: 4 out of 5 stars4/5Case Studies in Design Patterns Rating: 5 out of 5 stars5/5Agile Project Management: Scrum for Beginners Rating: 4 out of 5 stars4/5Agile Practice Guide Rating: 4 out of 5 stars4/5Good Code, Bad Code: Think like a software engineer Rating: 5 out of 5 stars5/5How to Write Effective Emails at Work Rating: 4 out of 5 stars4/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5Learn to Code. Get a Job. The Ultimate Guide to Learning and Getting Hired as a Developer. Rating: 5 out of 5 stars5/5Practices of the Python Pro Rating: 0 out of 5 stars0 ratingsHand Lettering on the iPad with Procreate: Ideas and Lessons for Modern and Vintage Lettering Rating: 4 out of 5 stars4/5Beginning C++ Programming Rating: 3 out of 5 stars3/5Grokking Simplicity: Taming complex software with functional thinking Rating: 4 out of 5 stars4/5Learn Software Testing in 24 Hours Rating: 0 out of 5 stars0 ratingsPYTHON: Practical Python Programming For Beginners & Experts With Hands-on Project Rating: 5 out of 5 stars5/5UX Simplified: Models & Methodologies Rating: 3 out of 5 stars3/5Programming Problems: A Primer for The Technical Interview Rating: 4 out of 5 stars4/5RESTful API Design - Best Practices in API Design with REST: API-University Series, #3 Rating: 5 out of 5 stars5/5Ry's Git Tutorial Rating: 0 out of 5 stars0 ratingsKanban: A Quick and Easy Guide to Kickstart Your Project Rating: 4 out of 5 stars4/5UML Demystified Rating: 0 out of 5 stars0 ratingsPython Machine Learning: Introduction to Machine Learning with Python Rating: 0 out of 5 stars0 ratingsGit Essentials Rating: 4 out of 5 stars4/5Beginning Programming For Dummies Rating: 4 out of 5 stars4/5DevOps For Dummies Rating: 4 out of 5 stars4/5Lean Management for Beginners: Fundamentals of Lean Management for Small and Medium-Sized Enterprises - With many Practical Examples Rating: 0 out of 5 stars0 ratingsLevel Up! The Guide to Great Video Game Design Rating: 4 out of 5 stars4/5
Reviews for Nell
0 ratings0 reviews
Book preview
Nell - Stefan Hollos
Nell: An SVG Drawing Language
by Stefan Hollos and J. Richard Hollos
Copyright © 2020 by Exstrom Laboratories LLC
All rights reserved. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage and retrieval system, without permission in writing from the publisher.
Abrazol Publishing
an imprint of Exstrom Laboratories LLC
662 Nelson Park Drive, Longmont, CO 80503-7674 U.S.A.
Publisher's Cataloging in Publication Data
Hollos, Stefan
Nell: An SVG Drawing Language / by Stefan Hollos and J. Richard Hollos
p. cm.
ISBN: 978-1-887187-40-4
Library of Congress Control Number: 2020932538
1. Computer graphics 2. SVG (Document markup language) 3. Programming languages (Electronic computers)
I. Title. II. Hollos, Stefan.
T385 .H65567 2020
N7433.8 .H65567 2020
006.66 HOL
About the Cover: Images created with NELL.
Table of Contents
Introduction
Drawing Definition File
Polygons
Circles
Ellipses
Arcs
Bezier Curves
Gallery
Useful Identities
Acknowledgments
About the Authors
Thank You
Introduction
Nell is a language for describing two dimensional vector drawings. We have been using versions of the language for several years to create illustrations for books, web pages and various art projects. It can even be used as a tool for physics and math simulations and experiments. You can for instance do optics ray tracing with it. There are a couple of examples later in the documentation that show how to do this.
We created the language because of our frustration with how tedious and time consuming it can be to create complex vector drawings. Why sit in front of a screen for hours clicking and dragging with a mouse when you can spend a few minutes thinking about your drawing, solving a few geometry and trigonometry problems and then writing a simple program that will create the drawing for you. It's less tedious and a lot more fun, plus you get to sharpen your math and programming skills.
A big advantage of using Nell is that you can parameterize the drawing. Lengths, angles, numbers of polygons, circles, ellipses, arcs, and curves can all be parameterized so you can easily experiment with different values and quickly see how the drawing changes. Another advantage is the simplicity of the language itself. It's so simple that it's easy to write programs that create Nell programs. We have used this technique to explore domains of possible drawings and have created thousands of interesting patterns in the process.
We usually use Nell to create just the basic outline of a complex drawing. Then if we want to decorate the drawing with different colors and line styles we use an interactive vector drawing program such as Inkscape. This is because there is currently no way to set stroke width and color for individual elements of a drawing or to set the fill color for individual polygons, circles and ellipses. We have thought about adding colors and styles to Nell but have decided against it to keep the language as simple as possible. Would you like to see colors and styles in the Nell language? Let us know what you think.
To understand how to use Nell it is helpful to be at least vaguely familiar with the rudiments of Cartesian or analytic geometry. This is geometry in which points, lines and curves are defined in a coordinate system. Coordinates are sets of numbers that are used to locate the position of a point in the coordinate system. Equations are often used to relate coordinates thus defining a set of points that make up a curve. Just the basics of high school algebra and geometry is all you need to use Nell. To be a power user you probably also need to know a little basic trigonometry.
Drawings in Nell are defined in a standard two dimensional Cartesian space where the positive x