Skip to content

This is a simple drawing and painting program which allows the artist to paint landscapes using a range of different geometries such as branching trees, barnsley ferns, clouds, and more. It is not intended as a full-blown drawing app, but rather as the basis of a series of lessons on using basic JavsScript and the HTML5 Canvas element.

Notifications You must be signed in to change notification settings

marypthomas/fractal_drawing

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fractal_drawing

A Two-Dimensional Drawing Application to Teach Beauty and Truth, As Well As Mathematics, Computer Science, and Computer Science Principles

Introduction

For years, STEM education has been increasing outreach efforts to be more inclusive of underrepresented communities, especially girls and young women. Also, outreach to the arts and humanities has increased, leading to a modification of the STEM acronym to include the letter ‘A’ for Art, giving STEAM.

Programs like Processing have gone a long way to engaging the more artistically-inclined... (more TBD)

Background

On the heels of a profound backpacking experience along the John Muir Trail, I realized I have been neglecting the artist in me. I have been working in the fields of computational science and high-performance computing for many years with little to no opportunities for truly creative outlets. I realized the need to be more expressive with the artist in me, but also the need to be more expressive with the scientist in me. Thus I was motivated to explore the boundaries of science and art in my own way. I would like to share with others the initial results of my efforts towards finding a reasonably short path to creating beautiful, engaging, and original 2D and 3D computer-generated art. Some of it is based on actual data collected from the world around us, most of it is based on pure math, and all of it is created by tweaking basic parameters of 2D and 3D objects. This proposal focuses solely on the 2D drawing program, i.e. the logical first step.

Design Approach

These programs are inspired by the love of beauty in nature and the desire to quickly and easily draw natural shapes and structures such as snowflakes, ferns, branching trees, and clouds in order to create beautiful landscapes. Much has been said about the need to move past a specific programming language and focus on what is actually being created by the students. Some students are more inspired when they know the language they are learning can actually lead to employment. Some students are more inspired when the tasks are creative rather than, or at least in addition to, tedious and technical.

Our practical hands-on lesson design begins by teaching the student how to write a simple interactive two-dimensional (2D) drawing program. We then take incremental steps towards developing a more complex drawing program. The lessons are designed around the HTML5/CSS3 web development standards and the Javascript programming language. Additionally it uses the jQuery library and the HTML5 Canvas element. For 3d, I have written code which outputs a CSV file for a 3D visualization tool called ANTz. Here is the format for the course.

Instructional ‘Realms of Focus’

Mathematics

Basic Math

Algebra

Geometry

Trigonometry

Classical Calculus

Lambda Calculus

Computer Science

Syntax

Variable Typing

Functions

Conditions

Recursion

Debugging

Computer Science Principles

Creativity

Abstraction

Data to Knowledge

Algorithms

Computational Artifacts

Problem-solving

Innovation

Other Realms of Importance

Integration

Process

Future Plans

P5JS

WebGL

Unity

About

This is a simple drawing and painting program which allows the artist to paint landscapes using a range of different geometries such as branching trees, barnsley ferns, clouds, and more. It is not intended as a full-blown drawing app, but rather as the basis of a series of lessons on using basic JavsScript and the HTML5 Canvas element.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 70.4%
  • CSS 21.3%
  • HTML 8.1%
  • Other 0.2%