Context Free is a program that generates images from written instructions called a grammar. The program follows the instructions in a few seconds to create images that can contain millions of shapes. http://www.contextfreeart.org/index.html
Find a file
2025-11-23 21:21:07 -07:00
Context Free.xcodeproj osx - update Scintilla from site 2025-03-19 20:51:48 -07:00
debian debian - update Debian files for 3.4.2+dfsg-1 release 2024-07-01 22:40:00 -07:00
input posix - implement command-line variable definitions 2019-07-23 22:22:10 -07:00
src-agg agg - update embedded AGG to latest upstream (r141), supports up to C++23 2024-08-31 17:07:16 -07:00
src-common common - only do legacy animation when neither time or ftime()/frame() is used 2025-11-03 07:52:51 -08:00
src-cs win - add accelerators to menus 2025-02-24 21:38:10 -08:00
src-ffmpeg net6 - implement animation 2022-12-03 21:22:30 -08:00
src-lexilla all - update Scintilla to 5.5.5 2025-03-01 18:04:42 -08:00
src-mfc win - update to VS toolset v145 2025-11-23 21:21:07 -07:00
src-osx osx - fix Clang warning about variable array extension 2025-11-03 07:51:22 -08:00
src-png/include win - implement PNG file save (except maybe tiling) 2025-02-21 15:23:14 -08:00
src-scintilla osx - improve readability of Scintilla InfoBar 2025-03-20 15:24:29 -07:00
src-unix win - fix tiled, multiplied save and upload 2025-03-17 14:16:01 -07:00
src-win win - install at top level of Start Menu 2025-03-23 13:30:34 -07:00
.gitignore osx - update Scintilla from site 2025-03-19 20:51:48 -07:00
cfdg.1 posix - bump version to 3.3.1 (34) 2021-01-08 17:01:57 -08:00
cfdg.entitlements osx - get Xcode to build cfdg with FFmpeg support 2022-12-19 18:36:17 -08:00
ChangeLog common - fix typos in Changelog 2025-03-29 22:30:12 -07:00
Context Free.entitlements osx - enable sandbox mode, which fixes Catalina networking issue 2019-07-30 23:28:05 -07:00
ContextFreeCLI.vcxprojVS11.filters win - update solutions for new AGG header location 2017-06-18 13:03:12 -07:00
ContextFreeCLIVS11.sln win - fixup CLI builds for Arm64 2022-12-16 15:50:07 -08:00
ContextFreeCLIVS11.vcxproj net6 - add trailing / to directories 2023-02-22 11:31:47 -08:00
LICENSE.txt osx - enable C++11 2013-01-30 16:34:15 -08:00
makeexamples.py common - stop using u8"" strings in examples.h, it isn't required and breaks on C++20 2024-08-29 17:54:17 -07:00
Makefile common - suppress binary stripping in debian build environment 2025-03-28 14:09:25 -07:00
README common - update README with libfl-dev requirement 2021-01-31 21:39:29 -08:00
README.ffmpeg common - add conditional Make for libagg and FFmpeg 2025-03-28 13:40:54 -07:00
rungallery.sh all - rungallery.sh now distinguishes gallery failure from cfdg failure 2015-03-27 16:03:30 -07:00
runtests.sh ffmpeg - Support API change in ffMPEG 5.0 2022-03-04 21:06:21 -08:00
test.ps1 win - update test script for new exe location 2023-01-05 19:20:15 -08:00

*** Context Free
*** version 3.3

    by Chris Coyne, John Horigan and Mark Lentczner

    Context Free Copyright 2005-2018 Mark Lentczner and John Horigan
    CFDG Copyright 2005 Chris Coyne
	Anti-Grain Geometry library Copyright 2002-2005 Maxim Shemanarev

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
DISTRIBUTION & LICENSE

Context Free is released under the GNU license.  

Context Free is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
GENERAL NOTES


~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
FILE TREE

./              - top level: this file, license, Makefile,
                  Xcode project and Windows CLI solution
./input/        - sample input files
./input/tests   - test input files
./src-agg/      - a subset of the Anti_Grain Geometry sources
./src-common/   - the CFDG engine
./src-ffmpeg/   - FFmpeg resources
./src-ffmpeg/include/  - FFmpeg include files
./src-ffmpeg/lib/      - FFmpeg libraries for Linux
./src-net/	    - Windows .Net specific sources
./src-osx/      - Mac specific sources
./src-scintilla - Mac Scintilla sources
./src-unix/     - Unix/Posix specific sources 
./src-win/      - Windows specific sources
./src-win/derived/     - pre-built output from flex and yacc for folks that
                         don't have those tools available
./src-win/icon/	       - Explorer icons
./src-win/res/         - UI icons
./src-win/win-install/ - files for creating NSIS installer EXE

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
MACINTOSH BUILD NOTES

Requires Xcode 9 & Mac OS X 10.7 (Lion).
Developed with XCode 9/10 and Mac OS X 10.14 (Mojave), has not been tested
with older versions of XCode or Mac OS X.

The Xcode project file is in the top directory:
    ./Context Free.xcodeproj


~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
WINDOWS GUI BUILD NOTES

Requires Visual Studio 2019 or later.

The VS2019 solution file is at ./src-net/ContextFreeNetVS11.sln

If you modify cfdg.l or cfdg.ypp then you must rebuild the parser files 
in src-win/derived. If you have Cygwin or a similar Posix environment 
installed or have access to a Unix/Linux or Mac system then cd to 
src-win/derived and type 'make' (you will need bison and flex too).

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
WINDOWS CLI (command line) BUILD NOTES

Requires Visual Studio 2019 or later.

The VS2019 CLI solution file is at ./ContextFreeCLIVS11.sln

If you modify cfdg.l or cfdg.ypp then you must rebuild the parser files 
in src-win/derived. If you have Cygwin or a similar Posix environment 
installed or have access to a Unix/Linux or Mac system then cd to 
src-win/derived and type 'make' (you will need bison and flex too).

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
BSD/LINUX/UNIX/POSIX BUILD NOTES

You will need a c++ compiler (gcc 7 or clang 4), flex 2.6 (not lex), bison 3.0, the
libpng library, and libicu library (International Components for Unicode). Most of
this should be installed or easily available on any modern operating system 
distribution. For libpng and libicu you will need the full installation of header
files. The Debian packages libpng-dev and libicu-dev provide these. Debian/Ubuntu
derived systems also need the libfl-dev package in order to build flex output.

If you need it, libpng can be found here:
    http://libpng.org/pub/png/libpng.html  
The home for libicu is at:
    http://site.icu-project.org/  
    
The Makefile assumes that libpng and libicu are installed either with the system
libraries or at /usr/local/lib. If either library is installed in a different 
location then you must update the LIB_DIRS variable in the Makefile with this 
location.

From the top level, you should just run:
    $ make

You'll see a warning about "mktemp" and "mkstemp" during the link step.
This can be ignored.

To run the program, try something like:
    $ ./cfdg -s 500 input/mtree.cfdg mtree.png

Run it with -? to get a usage summary:
    $ ./cfdg -?

'make check' will test your compiled cfdg executable. 'sudo make install'
will install cfdg and the cfdg.1 man page in /usr/local.

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
FFmpeg BUILD NOTES

Check out README.ffmpeg for building ffmpeg and enabling ffmpeg support