• jon@schemawound.com
Visual
CodeForest

CodeForest

ShapeLibrary.cfdg

startshape TestShape 

rule TestShape {
	EMPTYSQUARE { x 0 }
	EMPTYCIRCLE { x 2 }
	SQUARE { x 0 y -2}
	CIRCLE { x 2 y -2}
	HEPTAGON { x 4 y -2 s 0.5 }
	EMPTYHEPTAGON { x 4 s 0.5 }
}
 
path EMPTYSQUARE {
    MOVETO{x 0.5 y 0.5}
    LINETO{x -0.5 y 0.5}
    LINETO{x -0.5 y -0.5}
    LINETO{x 0.5 y -0.5}
    CLOSEPOLY{}     // go back to (0.5, 0.5) and close the path
	FILL{ sat 0 b 1}
    STROKE{}        // draw a line on the path using the default line width (10%)
}

path EMPTYCIRCLE {
    MOVETO{y 0.5}        
    ARCTO{y -0.5 r 0.5}
    ARCTO{y .5 r 0.5}
    	FILL{ sat 0 b 1}
	STROKE{}        
}

path HEPTAGON {
    MOVETO{x cos(90-360/7) y sin(90-360/7)}
    6* {r (360/7)} LINETO{y 1}
    CLOSEPOLY{}
}

path EMPTYHEPTAGON {
    MOVETO{x cos(90-360/7) y sin(90-360/7)}
    6* {r (360/7)} LINETO{y 1}
    CLOSEPOLY{}
	FILL{ sat 0 b 1}
	STROKE{} 
}

Forest.cfdg

startshape Ground

include ShapeLibrary.cfdg

//----------GROUND----------//

//Flat Ground
rule Ground 20  {
	SQUARE {}
	Dirt{ s 2 y -1 b 0.9}
	Ground{ x 1}
}

//Hill Up
rule Ground 20  {
	SQUARE {}
	Dirt{ s 2 y -1 b 0.9}
	Ground{ r 1 x 1}
}

//Hill Down
rule Ground 20  {
	SQUARE {}
	Dirt{ s 2 y -1 b 0.9}
	Ground{ r -1 x 1}
}

//Spawn a Tree
rule Ground 3 {
	SQUARE {}
	Tree { s 2 y 1}
	Dirt{ s 2 y -1 b 0.9}
	Root {s 2 y -1}
	Ground{ x 1}
}

//End the ground
rule Ground 0.5{
}

//----------DIRT----------//

rule Dirt 50{
	SQUARE{ z -1}
	Dirt{a 0.9 b 0.1 y -1 s 0.9}
}

rule Dirt 50{
	SQUARE{ z -1}
	Dirt{a 0.9 b 0.1 y -1 s 0.99}
}


//----------TREE----------//

rule Tree{
	TreeBranch []
}

rule TreeBranch 500 {
	//Trunk Right
    EMPTYCIRCLE []
    TreeBranch { y 0.2 r 2 s 0.995 }
}

rule TreeBranch 500 {
	//Trunk Left
    EMPTYCIRCLE []
    TreeBranch { y 0.2 r -2 s 0.995 }
}

rule TreeBranch 20{
	//Split
    EMPTYCIRCLE []
   TreeBranch {  r -30 s 0.8 }
	TreeBranch {  r 30 s 0.8}
}

//----------ROOT----------//

//Root
rule Root 20  {
    SQUARE {}
    Root [ alpha- 0.02  y -0.4 s 0.99 ]
}

//Root Branch Positive
rule Root 5  {
    SQUARE {}
    Root [ b 0.001 r 15 y -0.4 s 0.95 ]
    Root [ b 0.001 r 20 y -0.4 s 0.5 ]
}

//Root Branch Negative
rule Root 5  {
    SQUARE {}
    Root [ b 0.001 r -15 y -0.4 s 0.95 ]
    Root [ b 0.001 r -20 y -0.4 s 0.5 ]
}

//Root Stop
rule Root 0.1  {
}
Tags :