Starpery.com

Update on Maria scripting language

Got an idea? Need an invention?
User avatar
xxxtoytech
Active Poster
Active Poster
Posts: 95
Joined: Wed Jan 22, 2003 12:00 am
Location: Canada
Contact:

Update on Maria scripting language

Post by xxxtoytech »

Hello all,
I posted some new info a couple of weeks ago and at that time I mentioned that I would have my Maria scripting language ready soon. I'm still working on it, finished the specification and just starting on the actual interpreter (using ANTLR for lexing and parsing) in Java. These things always seem to take longer than planned. The Maria scripting language lets you specify behaviors for a sex android in a simple manner. As soon as it is finished I will post a link to the specification and interpreter. I plan on leaving the actual interface between the interpreter and the android open so creators can write their code to connect their android to the interpreter.

In doing research I've come across a couple of things which should be of interest to many here. FREE text-to-speech engines and FREE speech recognizers written in Java.

Sphinx-4, A speech recognizer written entirely in the Java programming language

and

FreeTTS 1.2 - A speech synthesizer written entirely in the Java programming language

With some speakers, a microphone, a small amplifier and a bit of programming you can rig your doll to listen and respond! I'm going to try to incorporate hooks for these two items in Maria; whether it will work depends upon how much resources these two programs use up.

xxxtoytech

Keithallen
Ex-Member
Posts: 5070
Joined: Sat Aug 31, 2002 12:00 am
Location: PA

Post by Keithallen »

:D Nice xxx!
Will this program be fully inter-active?

User avatar
xxxtoytech
Active Poster
Active Poster
Posts: 95
Joined: Wed Jan 22, 2003 12:00 am
Location: Canada
Contact:

Post by xxxtoytech »

keithallen wrote::D Nice xxx!
Will this program be fully inter-active?
Hi Keithallen,
Yes.
The way it works is you write a script that describes the sexual behavior of an individual; that is, how they react to sexual stimulus. The script is then run using the interpreter which controls the android. The android has some method of sensing what is going on (i.e. switches, pressure sensors) and has some method of mimicking sexual responses (i.e. motors, air muscles). The language is highly specalized, task-specific and small. Important points are:
  • the Maria language is modelled on human anatomy
  • the language is not tied to any one android or manufacturer. It is as generic as possible. It describes the actions at a high level; the android creator is responsible for implimenting the actions at a low level (think of the Postscript language and the wide variety of printer that run it)
  • designed to run on different platforms, Windows, Linux, MacOS. The initial interpreter will be in the Java language, since it is widely available, easy to use and there is a wide base of programmers available. The Java language can also control the android via a network, a serial port, a parallel port or (using proprietary software) a USB port.
  • the Maria language is designed to impliment behaviors, it does not contain any implicit behaviors
  • the Maria language and Java-based interpreter are free and free to use. This is critical in getting people to adopt the language and to write scripts.
The Maria manual itself is finished, as I've mentioned I'm now working on the lexer and parser using ANTLR. This should hopefully be finished in the next couple of weeks and posted as a demo.

xxxtoytech

User avatar
Nonfactor
Doll Elder
Doll Elder
Posts: 2299
Joined: Fri Feb 04, 2005 12:00 am
Contact:

Post by Nonfactor »

So basically you have created a generic front-end for hardware that does not even exist? Why's that needed instead of using some standard language like Python or LUA when the hardware actually becomes available?

Is it at least BSD licensed or is it restricted somehow?

User avatar
mytime
Doll Oracle
Doll Oracle
Posts: 8956
Joined: Thu Apr 03, 2003 12:00 am
Location: The Netherlands
Contact:

Post by mytime »

Hi All,

Nonfactor wrote:
So basically you have created a generic front-end for hardware that does not even exist? Why's that needed instead of using some standard language like Python or LUA when the hardware actually becomes available?


xxtoytech wrote above:
designed to run on different platforms, Windows, Linux, MacOS. The initial interpreter will be in the Java language, since it is widely available, easy to use and there is a wide base of programmers available. The Java language can also control the android via a network, a serial port, a parallel port or (using proprietary software) a USB port.
So, its not designed for hardware that does not exist IMO (there are enough Windoze, Linux and Mac's available...
With respect for all that lexing and working on a interpreter, I'am more wondering about wat this language adds.
One who wants to program a android, maybe interested in something like AIML (a lot stuff of AIML is already available).
AIML is a way to set up a character, while output / input can run over speach synthesizers/speach recognizers like the ones xxxtoytech mentioned.

Mytime & Helen
Image
One dream, one mission...

User avatar
Nonfactor
Doll Elder
Doll Elder
Posts: 2299
Joined: Fri Feb 04, 2005 12:00 am
Contact:

Post by Nonfactor »

I meant the androids with "hardware".

User avatar
xxxtoytech
Active Poster
Active Poster
Posts: 95
Joined: Wed Jan 22, 2003 12:00 am
Location: Canada
Contact:

Post by xxxtoytech »

Nonfactor wrote:So basically you have created a generic front-end for hardware that does not even exist? Why's that needed instead of using some standard language like Python or LUA when the hardware actually becomes available?

Is it at least BSD licensed or is it restricted somehow?
Hi Nonfactor,
The reason is to get around the "chicken-and-egg" problem. I also hope to inspire people to create hardware (androids or something similar) by making it simpler to test and run their creations. One could also ask why create hardware without software to run it. I've already got some computer interfaces and some android parts so this gives me something to work with. Same with other creators too, especially if they don't have programming skills. The language will be copyrighted mainly to prevent people from changing it but available without charge. Remember when Microsoft and others started adding extensions to HTML; instead of one universal HTML, coders had to deal with many different browsers.

The reaon for a new scripting language is to keep it simple and small. Maria is highly specialized, it is only intended for programming sex androids. That's it. Many general purpose languages require mucking around with low-level stuff to get things to work. What I hope to do is to create a couple of "standard" interfaces that are simple to work with (serial or USB when it become available) so non-programmer hardware guys can use it for R & D. The low-level work is done once, the high-level language makes it quick to program.

Responding to mytime's question. AIML is designed to run chat-type characters, Maria is designed to control the physical aspects of an android. Although I'm incorporating hooks to a recognizer/synthesizer into Maria the programs are not intended, except for simulations, to be run on a monitor/keyboard arrangement. Ideally, the monitor and keyboard would not even be in the same room with the android. Input is through the android's nervous system, output is through the android's mechanics.

Here is a booklet that explains the concept in greater detail.

I hope to have some sort of interpreter cobbled together in a couple of weeks.

xxxtoytech

User avatar
VSG
Apprentice
Apprentice
Posts: 11
Joined: Wed Jul 27, 2005 12:00 am
Contact:

Post by VSG »

So I finally got my Acrobat reader fixed so I could read your PDF. It has a lot about why, but none of the hows. I didn't see anything describing the syntax of the language? Is this available?

User avatar
xxxtoytech
Active Poster
Active Poster
Posts: 95
Joined: Wed Jan 22, 2003 12:00 am
Location: Canada
Contact:

Post by xxxtoytech »

Hi VSG,
Just posted the language description at http://mariascript.tripod.com/resources.html. It has taken longer than I originally planned; I wanted to have the interpreter ready but it will take another couple of weeks. There are most likely several minor errors in the language specification (I've already found one and will correct it in the next day or so). Any feedback is always appreciated.

User avatar
plasticrules
Senior Member
Senior Member
Posts: 221
Joined: Sat Jul 19, 2003 12:00 am
Location: British Columbia
Contact:

Post by plasticrules »

All i can say is that i cant wait to use it

User avatar
Nonfactor
Doll Elder
Doll Elder
Posts: 2299
Joined: Fri Feb 04, 2005 12:00 am
Contact:

Post by Nonfactor »

I still don't see what a special language for sex androids is good for. Most likely androids would be general purpose and as such have more code than that. It wouldn't make sense to include a separate scripting language for a single purpose out of many the system has when you could use an established scripting language (LUA and Python are pretty popular these days, japanese androids might use Ruby instead) for all of its functions.

Never mind that androids would sooner or later use mostly neuronal networks which wouldn't require scripting beyond the algorithm determining happyness and that needs to be highly optimized so it wouldn't be in a scripting language.

User avatar
casperghostboy
Ex-Member
Posts: 1229
Joined: Sat Jul 23, 2005 12:00 am
Location: Manshank, Virginia

Post by casperghostboy »

I just read your descriptions on some of the syntax of your Maria language. I'm thinking that it is a cross between Visual Basic, C++/C#, Java and possibly Pascal and maybe a little Mac OS X AppleScript thrown in. I used to write intricate programs in BASIC (most flavors--Favorites: Tandy Color and Applesoft) when I was younger, in fact, it was the first language I've spoke before I spoke English. In my younger adult years, I used MS-DOS to write mini-programs as batch files. I even written a budget-friendly grocery bill calculator in QBasic.

What I am saying from this jibberjabber, I could write a basic (ha! a pun!) script program that could give me reasonable satisfaction for a certain scenario. And also, there could be pre-written programs written by people and published on the Web as plain-text files (if they can be written as, like C++ and Java--you DON'T need a specialized program writer (IDE) for those two) or written in magazines and such for people who don't exactly know how the whole shebang works--but can have the language's default extension appended afterwards (but I wouldn't expect modules written in Dr. Dobb's Journal (a trade rag for the computer programmer) anytime soon! :P ) The last scenario is basically a Rainbow magazine (Tandy CoCo [Color Computer]) or a general-purpose computer magazine (there were a few in the 80s and early 90s) idea, where people written programs (usually one featured) and had it "ported" to other BASIC-speaking computers (such as the Atari, the CoCo, the Apple II, GWBASIC/QBasic, etc.), where you had to painstakingly type in each line, usually with me starting with these two lines for me on the CoCo (or the Apple II, whenever I had access to one):

Tandy Color Computer:

Code: Select all

NEW
10 CLS
Apple II:

Code: Select all

NEW
10 HOME
(Each cleared the memory buffer and the screen (when running the program), if you didn't know)

But, I know this is a roundabout way of speaking of that I want this language to flourish. If someone or a group of people can "master" this language *raises hand* , then there may be a market after all for robotic love dolls, even if you had to program them yourself. After all, the early home computers had to have someone (usually you) type in a program, debug it and then relish the results after you run it successfully (and hope you saved it!).

Until then, when master programmers can craft the ultimate response set with a robotic love doll, this is basically the BASIC of programming love dolls.

My $0.03...
CasperGhostboy, Daphne and Tiffany

My Doll-Friends: http://www.dollalbum.com/dollgallery/in ... ?cat=10382

The best part of waking up, is Ubuntu in your cup!

User avatar
xxxtoytech
Active Poster
Active Poster
Posts: 95
Joined: Wed Jan 22, 2003 12:00 am
Location: Canada
Contact:

Post by xxxtoytech »

Hi Nonfactor,
Nonfactor wrote:I still don't see what a special language for sex androids is good for. Most likely androids would be general purpose and as such have more code than that.
My own feeling is that general purpose androids are years away and most likely will not include a sex function. My assumption is that most owners of a general purpose android will not want to have sex with their android (in the same way that most owners of vacuum cleaners don't want to use it as a sex toy, although a minority do). When general purpose androids do appear, they will most probably have a different type of coding. Right now, androids and robots are more specialized; we have vacuum cleaner robots, assembly line robots, entertainment robots/androids and more. Android development is incremental, one small step at a time. For example, the Japanese android Repliee Q1 concentrates on "looking" human. Other current androids only do one or two things (walk, balance, navigate). Integrating all of this is a single android, at a reasonable price is years away.The purpose of the Maria language is to provide a starting point in developing a generic sex android now and to provide an impetus for others to work towards this goal.
Nonfactor wrote:It wouldn't make sense to include a separate scripting language for a single purpose out of many the system has when you could use an established scripting language (LUA and Python are pretty popular these days, japanese androids might use Ruby instead) for all of its functions.
These are general purpose scripting languages. I've am proficient in many general purpose languages (and some shell scripting languages) and have used some of these to run hardware I've developed. The problem with these languages (IMHO) is that: (1) esoteric (use odd combinations of characters for operators etc.) especially for beginners (2) difficult to run hardware easily (programs would have to incorporate hardware specific coding) (3) languages don't include built in code to help sort/catalog scripts.

Maria is concise, verbose (good for beginners, not as good for experienced coders) and designed for a specific purpose. I've also included features such as keywords and descriptions that can be used to easily index/catalog/archive scripts for sharing. I've tried to make archiving and sharing scripts between users easy to encourge use/development of the language. Programmers should concentrate on behaviors, not on controlling hardware at a low-level.
Nonfactor wrote:Never mind that androids would sooner or later use mostly neuronal networks which wouldn't require scripting beyond the algorithm determining happyness and that needs to be highly optimized so it wouldn't be in a scripting language.
Maria, even if it is successful, will most certainly be replaced by more advanced languages or built in neural networks. However, these advanced androids are most likely years away. In the meantime, a task-specific language such as Maria provides a starting point for hardware developers.

xxxtoytech

User avatar
xxxtoytech
Active Poster
Active Poster
Posts: 95
Joined: Wed Jan 22, 2003 12:00 am
Location: Canada
Contact:

Post by xxxtoytech »

Hi Casperghostboy,
casperghostboy wrote:I just read your descriptions on some of the syntax of your Maria language. I'm thinking that it is a cross between Visual Basic, C++/C#, Java and possibly Pascal and maybe a little Mac OS X AppleScript thrown in
My original idea behind the language was to produce a library as an add-on to an existing language. However, this is complicated for the end user and is not as portable as a free-standing language.

When it came to actually designing the language, I began by creating a strict object oriented language. This strict approach created a language much more complicated than I felt it needed to be. At that point, I relaxed my approach and combined various elements in a way that seemed easy to follow and natural for the task. I've tried to err on the side of being verbose (especially with the logical operators) and spent a lot of time on naming the methods.

The Maria Scripting Language specifications for sex androids is available at: http://mariascript.tripod.com/resources.html

xxxtoytech

User avatar
Downer
Basic Poster
Basic Poster
Posts: 5
Joined: Wed Aug 23, 2006 12:00 am
Contact:

Post by Downer »

Parallel port?! Are you kidding me? :(

USB is the only way to go with this. I think it would be detrimental to support an old, less flexible, and generally dying connection standard when a vastly superior standard has already been widely adopted.

Also, I'm not so sure the object-oriented paradigm is right for this particular application. Have you considered a state-event paradigm for the language?

Further critique pending finished read of spec.
I lurk in the shadows, because I dropped my damn flashlight. :P

Post Reply

INFORMATIONS