Numeric modular dimension.

Let the developers know what you think of the software and what can be done to either improve the CFDG language or the Context Free program.

Moderators: MtnViewJohn, chris, mtnviewmark

Post Reply
User avatar
zol
Posts: 40
Joined: Sun Mar 23, 2008 4:14 pm

Numeric modular dimension.

Post by zol »

Just as for hue, except
it doesn't correspond to hue,
or any other rendered property.

Just a number. Any range will do.
(I'm fond of [0,1) myself)

It should be obvious by now.

It can appear wherever numbers can.
:D

I'm leaving it to your imaginations, but
I'll drop another hint.

Code: Select all

startshape abc
rule abc 2{
    SQUARE{sat 1 b 1}
    abc{hue 120 x 1}
}
rule abc{}
Exempli syntaxis,
adjustment, {n -.2}
application, {x (1-#)}

"But is it context free?" you ask.
:twisted:

User avatar
mtnviewmark
Site Admin
Posts: 81
Joined: Wed May 04, 2005 12:46 pm
Location: Mountain View, CA
Contact:

Post by mtnviewmark »

Actually, John and I have been kicking around quite a number of schemes for allowing parametric rules, with arbitrary numbers of varying parameters from several different spaces ([0,1], or R, or [0,360), for example).

The issue of "is it context free" or not is more than just pedantic: Being context free is what makes the approach to expansion in the program feasible. We think we can achieve this, in a way that seems natural, but might be a bit surprising for people who are expecting the parameters to be like arguments in a programming language.

The key is keeping these values as a sort of future. Think of scale: A rule can modify scale, and, pass the modified result on, but it can't really, in any sense, observe the value of the scale at any point. Only when it finally comes down to rendering a shape does the scale have an effect. Even there, as you can see from the 2.2 beta shape construct, the scale value isn't in any sense observable from the drawing. It has simply modified the environment through which the drawing occurs.

The hard part will be allowing people to encode ways in which parameters can interact with each other (think of how scale affects both x and y), and allow expressions (sin, cos, etc...) without violating this principle.
I'm the "m" in "mtree.cfdg"

User avatar
zol
Posts: 40
Joined: Sun Mar 23, 2008 4:14 pm

Post by zol »

MtnViewMark wrote:The issue of "is it context free" or not is more than just pedantic: Being context free is what makes the approach to expansion in the program feasible.

Oh, I'm not suggesting otherwise, nor am I bucking to overthrow the principle. My twisted enjoyment is rather in the philosophical challenges of determining what counts as context.
For example, I can position myself absolutely from any shape rule, at any depth, along the dimension of rule objects using their names. (I'm being facetious)
From another perspective, one can simply create a new rule for each context. And so on.
The hard part will be allowing people to encode ways in which parameters can interact with each other (think of how scale affects both x and y), and allow expressions (sin, cos, etc...) without violating this principle.
My suggestion plays with the boundary of what counts as receiving context information.
It is on the one hand just another dimension whose absolute value cannot be examined or tested explicitly.
On the other hand, it can influence adjustments, and its effects can be coordinated mathematically.
The shape rule itself is oblivious to these machinations.

As you say, it's really about feasibility.

The first thing I noticed about expressions is that they are always and only constants in disguise, from which I assume that all the matrices are built before anything happens.
In that case, my suggestion violates the current scheme, as must any that allows variables in adjustments.

General parameterization is a much broader issue than what I suggest, and not one that I have thought through nearly well enough to comment on.
... might be a bit surprising for people who are expecting the parameters to be like arguments in a programming language.
I hope so. I suspect that I would lose interest if things got that loose.

Several idea-chains have started running around my mind, but I'll let them mature when I have time rather than go on a disastrous freestyle exposition now. :roll:

[edit]
Continuing discussion on the original parameterization thread

Post Reply