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/5Information Theory: A Concise Introduction Rating: 0 out of 5 stars0 ratingsCreating Melodies 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 authors
Related to Nell
Related ebooks
Non-Photorealistic Computer Graphics: Modeling, Rendering, and Animation Rating: 5 out of 5 stars5/5Immersive 3D Design Visualization: With Autodesk Maya and Unreal Engine 4 Rating: 0 out of 5 stars0 ratingsPhaser.js Game Design Workbook: Game development guide using Phaser JavaScript Game Framework Rating: 0 out of 5 stars0 ratingsPaper Prototyping: The Fast and Easy Way to Design and Refine User Interfaces Rating: 4 out of 5 stars4/53D Tutorials Collection Rating: 0 out of 5 stars0 ratingsMastering Responsive Web Design with HTML5 and CSS3 Rating: 0 out of 5 stars0 ratingsTinkercad For Dummies Rating: 0 out of 5 stars0 ratingsAutodesk Maya 2016: A Comprehensive Guide Rating: 0 out of 5 stars0 ratingsiPhone Game Blueprints Rating: 0 out of 5 stars0 ratingsBlender Game Engine: Beginner’s Guide Rating: 3 out of 5 stars3/5Beep! Beyond the Frogpond and Back Rating: 0 out of 5 stars0 ratingsAdvanced Graphics Programming Using OpenGL Rating: 2 out of 5 stars2/5Bootstrap Site Blueprints Rating: 0 out of 5 stars0 ratingsMastering 3D Printing Rating: 0 out of 5 stars0 ratingsFrom Pixels to Animation: An Introduction to Graphics Programming Rating: 1 out of 5 stars1/5Lattice Labyrinth Tessellations Rating: 5 out of 5 stars5/5Level of Detail for 3D Graphics Rating: 4 out of 5 stars4/5Exploring the Python Library Ecosystem: A Comprehensive Guide Rating: 0 out of 5 stars0 ratingsCybernethisms: Aldo Giorgini’s Computer Art Legacy Rating: 0 out of 5 stars0 ratingsUnity 5.x Animation Cookbook Rating: 0 out of 5 stars0 ratingsGame Character Creation with Blender and Unity Rating: 0 out of 5 stars0 ratingsJavaScript A Complete Guide - 2021 Edition Rating: 0 out of 5 stars0 ratingsMastering OpenGL: From Basics to Advanced Rendering Techniques: OpenGL Rating: 0 out of 5 stars0 ratingsBeginning HTML5 and CSS3 For Dummies Rating: 0 out of 5 stars0 ratingsA Pocket Guide to Creating Symbol Fonts Rating: 0 out of 5 stars0 ratingsCSS Master Rating: 0 out of 5 stars0 ratingsEmerging Scholar: Gratitude of an Award Recipient Rating: 0 out of 5 stars0 ratingsPattern Design Rating: 0 out of 5 stars0 ratingsCurve Stitching: Art of Sewing Beautiful Mathematics Rating: 4 out of 5 stars4/5The Unreal Developer's Guide: Intermediate Challenges: Mastering Unreal Engine: From Novice to Pro Rating: 0 out of 5 stars0 ratings
Software Development & Engineering For You
Hand Lettering on the iPad with Procreate: Ideas and Lessons for Modern and Vintage Lettering Rating: 4 out of 5 stars4/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5Python For Dummies Rating: 4 out of 5 stars4/5Level Up! The Guide to Great Video Game Design 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/5Adobe Illustrator CC For Dummies Rating: 5 out of 5 stars5/5Learning R Programming Rating: 5 out of 5 stars5/5DevOps For Dummies Rating: 4 out of 5 stars4/5Beginning Programming For Dummies Rating: 4 out of 5 stars4/5Good Code, Bad Code: Think like a software engineer Rating: 5 out of 5 stars5/5Ry's Git Tutorial Rating: 0 out of 5 stars0 ratingsPhotoshop For Beginners: Learn Adobe Photoshop cs5 Basics With Tutorials Rating: 0 out of 5 stars0 ratingsModern C++ for Absolute Beginners: A Friendly Introduction to C++ Programming Language and C++11 to C++20 Standards Rating: 0 out of 5 stars0 ratingsiOS App Development For Dummies Rating: 0 out of 5 stars0 ratingsHow to Write Effective Emails at Work Rating: 4 out of 5 stars4/5OneNote: The Ultimate Guide on How to Use Microsoft OneNote for Getting Things Done Rating: 1 out of 5 stars1/5Tiny Python Projects: Learn coding and testing with puzzles and games Rating: 5 out of 5 stars5/5Data Visualization: a successful design process Rating: 4 out of 5 stars4/5How Do I Do That in Photoshop?: The Quickest Ways to Do the Things You Want to Do, Right Now! Rating: 4 out of 5 stars4/5Learning Java by Building Android Games Rating: 0 out of 5 stars0 ratingsSQL For Dummies Rating: 0 out of 5 stars0 ratingsAndroid App Development For Dummies Rating: 0 out of 5 stars0 ratingsHow Do I Do That In InDesign? Rating: 5 out of 5 stars5/527 PROGRAM MANAGEMENT INTERVIEW TECHNIQUES - To Ace That Dream Job Offer ! Rating: 5 out of 5 stars5/5Reversing: Secrets of Reverse Engineering Rating: 4 out of 5 stars4/5PYTHON: Practical Python Programming For Beginners & Experts With Hands-on Project Rating: 5 out of 5 stars5/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