Cscript: Level 1 - The Alphabet
Cscript: Level 1 - The Alphabet
Cscript is based on Base 3 (aka. trinary/ternary). Is is designed with the following goals
1. Easy to read/write programmatically as well as by hand
2. Ability to spatially compress information
The writing line is divided into Bottom / Middle / Top, each section represents a ternary value.
Sample Text
Level 2 – Vertical Compression
Here we save horizontal space by allowing allowing vertical lines
The A and N do not have any corners, this makes their middle value “invisible”.
For this reason the A and N are treated as single lines without corner, and also
allowed to also exists as dots.
The comma (,) and the period (.) use the extra character space (top section) and we
use the same alternate forms that we use for the A and N. A vertical dash at the top
means comma and a dot at the top means period
Text reads :
Everyone is entitled to all the rights and freedoms set forth in this Declaration, without
distinction of any kind, such as race, colour, sex, language, religion, political or other opinion,
national or social origin, property, birth or other status. (There's a typo, bet ya can't find it in 5 minutes :P)
Level 3 – Vertical Stacking
Vertical stacking is simple!
Reading is top → bottom.
Text reads :
Everyone is entitled to all the rights and freedoms set forth in this
Declaration, without distinction of any kind, such as race, colour, sex, language,
religion, political or other opinion, national or social origin, property, birth or
other status.
Reading Rules
Line Terminal :
A point that has 1 connection is a dot
Every line has 2 terminals, the top-left most terminal is the “start
terminal”
eg. if an E or D are under an E they can fall entirely in the 0 zone but still
obviously be an E, because if all values were 0 it would be an A, and thus be a
line or dot. (refer to the word FREEDOMS in the first line of the example above)
Level 4 – 4 Point Compression
Each shape so far has been composed of 1 point(dot) 2 points(single line) or three
points(line with corner)
4 Point Compression reads every 4 point glyph as 2 letters. (they share 2 values)
There are 4 main types of 4 point glyphs, they vary in how they are decompressed.
Simple Splits are all 4 point glyphs that have 2 corners. (many more, these are just a few)
If the middle line is vertical then one of the other lines extends to the left.
Simple 4-Point Splits are done by using the first 3 values for the first letter and the
last 3 values for the second letter.
Intersection 4-Point Splits are the most complex for software reading.
The line from “terminal 2” to the intersection is duplicated and the glyph split.
The glyphs are then read using proper reading rules, so if the rule above causes the
software to read right → left then it reverses the values.
If there is an intersect and one of the angles is 180 degrees, use the T-split rule.
There are only 8 possible 4-Point T-splits.
As you can see, some are not useful, this is a good time to bring up re-indexing.
I have simply assigned values based on normal alphabetical sequence. Some letter
combinations are efficient.. others not as much. The alphabet itself can probably
be optimized based on letter combination frequency.
Being computer friendly means it is possible to analyze this and based on some
parameters find an optimized alphabet index through software analysis or even
brute force (as opposed to manual trial & error)
Level 5 – 5 Point Compression
5 Point Compression reads every 5 point glyph as 2 letters. (They share one value)
“Reverse read start” simply means the the first letter is connected so that the
reading starts right → left (opposite the reading rules)
4/5-Point Chains
Regular 4-Point compression glyphs can ONLY be added to a 5-Point Chain at the
end of the chain.
Intersection 4-Point Splits can chain just like the 5-Point. They can also be freely
chained with 5-Point chains (start, inside, and end)
The reading rules are actually quite simple for all this
find point
If length is 1 - treat as point (read 1, delete 1)
if length is 2 - treat as dash (read 2, delete 2)
if #2 is an intersect - treat as 4-P intersection (read 4, delete 3)
if remaining length is 1 - delete 1
if length is 3 - treat as normal glyph (read 3, delete 3)
if length is 4 - treat as 4-P (read 4, delete 4)
if length is > 4 - treat as 5-P (read 3, delete 2)
repeat
The “if remaining length is 1 - delete 1” is used because the 4-Point intersection
needs a “clean up rule” for when it comes last.
The 5-Point chain has a built in clean up rule, the last character is treated as a 3
point glyph and deletes 3 instead of 2.
Vertical stacking can even be used above and below these chains.
After reading and deleting each segment from a long string, the find point
function is called again, so if there are any glyphs above or below the string they
will be found when enough of the string has been deleted to cause them to be
found first.
Level 6 – Gap Compression
Gap Compression only removes the gaps between 3 point and/or 5 point glyphs
(even daisy chained), there are 2 types
1. Intersect Gap Compression
2. Corner Gap Compressions
Normal reading rules will already cause these breaks when reading.
The Dot form for A and N are used for vertical re-sequencing.
A Dot Form will override all letters that exist in its vertical space, and place itself
before all of them.
If 2 dots exists in the same vertical column, they both jump ahead of the letters and
normal reading rules determine their order.
In the example above the red dots are resequenced to be before the blue letter.
*With Chains : sequencing dots only override the individual letters which share its space, not the entire chain.
Resequenced Shortcut
Any letter glyph or multi-letter compound glyph has a set of letters and a
sequence.
Sometimes the rules make useless combination efficient and useful one inefficient.
This is best solved by trying to optimize the alphabet, but that is a great task.
You can also just re-sequence the letters and keep an “index”(physical or mental).
There are in fact tons of possible lines and shapes it does not account for. (loops,
circles, triangles, etc..)
There are even many possible “reading rules” which could be added to allow more
shortcuts and chain types.
Here are 2 shortcuts I have adopted so far. (I may want to use curves for something
else later and be forced to find another method of doing V & F)
Not Enough?
It never is ;)
The change in a systems internal energy is equal to the difference between heat added
to the system from its surroundings and work done by the system on its surroundings
Dscript (Dimensional Script) is a 2D writing system that allows words and phrases
to exist as strings that are very flexible and dynamic in 2D.
Dscript has been developed much more and even has a notation layer.
WireScript, a 2D/3D writing system that can be written by bending wires. Works
great for art, sculptures and jewelry.
http://dscript.org/wirescript.pdf
NailScript, A layered writing system for writing with hammer and nails.
http://dscript.org/nailscript.pdf
Cscript by Matthew DeBlock is licensed under a Creative Commons Attribution 3.0 Unported License.
Based on a work at www.dscript.ca and www.dscript.org