Type a Picture!

With WordsEye you can conjure your own art, cartoons and stories using simple language.

Join WordsEye and express yourself on one of the most creative communities on the web!

Scene not validated
Fruit medley

Input text:
A small banana is inside a bisque bowl. A pear is zero inches to the left of the banana. A small apple is zero inches to the right of the banana. The apple is matte. A strawberry and a small cherry are on the banana. A small grape is zero inches in front of the apple. A tiny pineapple is in the small mango. A tiny plum "plum" sphere is in front of the mango. A small orange "orange" sphere is next to it. The ground is bisque and matte.
Views:
717
3D models:
 (legacy)  The bisque color is lovely!*br**br*I was playing around with the positioning and stacking of objects and made a few observations.*br**br*Proximity of alignment of objects seems to depend a bit on the object type that's the 'ground'. (It tried 'zero inches' but didn't seem to have an effect on aligning things right next to a 'pear' for example. It would be neat to be able to specify 'X is exactly aligned to Y' or something like that to get this effect.)*br**br*Plurals (for example two cherries) didn't apply when starting from another object and then positioning them relative to this other object. (I also noticed that at a certain point I couldn't add more singular fruits, but perhaps there's a natural limit to the number of objects which fit into the scene or into another object, here a 'bowl')?*br**br*I also noticed that square defaults doesn't apply to things which are also colors (plum, orange).*br**br*
 (legacy)  If you just say "X is in front of Y" then it will be at 0 inches in front of. The reason it might not have seemed that way is that it uses the bounding box of the object to place objects next to each other. So if the stem of the banana is curved away from the body, that will determine the bounds of the box.*br**br**br*The way to exactly position the objects in cases like this is to say things like "the left side of the banana is .6 inches to the left of the right side of the pear."
 (legacy)  Ok, that explains it. Is "0 inches" okay? Is "zero inches" (instead of the number) allowed too?
 (legacy)  "0 inches" and "zero inches" should both work and do the same thing. But they won't really change anything since the default is to place objects directly next to each other anyway.
 (legacy)  I don't think "-3 inches" works though, right? Is that a problem at the language processing phase or at your end? If the former, I will fix it.*br*
 (legacy)  That would be great to fix. Looks like it's an nlp problem.*br**br*WE* (trace nlp::paint-world)*br*(NLP::PAINT-WORLD)*br*WE* (pw "the cube is -2 inches to the left of the sphere.")*br* 0: (NLP::PAINT-WORLD ("the cube is -2 inches to the left of the sphere"))*br* 0: NLP::PAINT-WORLD returned [ENTITY: "Main World" #:|world12633|*br**br*WORLD: "Main World" #:|world12633|*br* Entity: "cube" #:|ent12733|*br* New Property: :ATTRIBUTE "inch"*br* Property-of-property: :ATTRIBUTE "-2"*br* Property-of-property: :ATTRIBUTE "to the left of"*br* *br*[ENTITY: "Main World" #:|world12633|*br*WE* (pw "the cube is 2 inches to the left of the sphere.")*br* 0: (NLP::PAINT-WORLD ("the cube is 2 inches to the left of the sphere"))*br* 0: NLP::PAINT-WORLD returned [ENTITY: "Main World" #:|world12741|*br**br*WORLD: "Main World" #:|world12741|*br* Entity: "cube" #:|ent12844|*br* Entity: "sphere" #:|ent12845|*br* Relation: "to the left of" "STATIVE"*br* Property: :MEASURE (2 :INCHES)*br* FIGURE: "cube" #:|ent12844|*br* GROUND: "sphere" #:|ent12845|*br* *br*[ENTITY: "Main World" #:|world12741|*br*WE*
 (legacy)  Could you run the "-2" example through "tag-sentence" and show me the result.*br*
 (legacy)  Could you run the "-2" example through "tag-sentence" and show me the result.*br*
 (legacy)  Anticipating that the problem is with the tagger, change the definition of DEFAULT-TAGS in en-tagger.lisp to:*br**br*(defun DEFAULT-TAGS (word)*br* "Set default tags for some classes of tokens"*br* (cond*br* ;; 10% and things like that which should not be*br* ;; classed as CD*br* ((and (digit-char-p (aref word 0))*br* (eq (aref word (1- (length word))) #\%))*br* `(("RB" 0)))*br* ((or (digit-char-p (aref word 0))*br* (and (* (length word) 1)*br* (eq (aref word 0) #\-)*br* (digit-char-p (aref word 1)))*br* (and*br* (eq (aref word 0) #\.)*br* (digit-char-p (aref word 1))))*br* `(("CD" 0)))*br* ((isquote (aref word 0))*br* `(("NN" 0.693) ("JJ" 0.693)))*br* (t*br* `(("NN" 0.240687) ("VB" 1.54219)))))*br**br*
 (legacy)  Let's not reveal any proprietary software code in Forum exchanges.
 (legacy)  I don't think this is too much of a revelation. Good luck to anyone who wants to recreate the system from this fragment. And shame on them for stealing the idea given that this particular fragment is a grotesque hack.*br*
 (legacy)  right...fragments like that will be of no use to anyone other than us.
 (legacy)  Let me know if that fixes the problem. If it does not I'll have to poke around further.*br*
 (legacy)  It works for "-1 feet" but not "-3 feet"*br**br*WE* (pw "the sphere is -3 feet to the left of the cube.")*br**br*WORLD: "Main World" #:|world10723|*br* Collection: "foot" #:|coll10822|*br* *Members:*br* **br* Entity: "cube" #:|ent10824|*br* Relation: "to the left of" "STATIVE"*br* FIGURE: "foot" #:|coll10822|*br* GROUND: "cube" #:|ent10824|*br* *br**br*WE* (pw "the sphere is -1 feet to the left of the cube.")*br**br*WORLD: "Main World" #:|world10831|*br* Entity: "sphere" #:|ent10934|*br* Entity: "cube" #:|ent10935|*br* Relation: "to the left of" "STATIVE"*br* Property: :MEASURE (-1 :FEET)*br* FIGURE: "sphere" #:|ent10934|*br* GROUND: "cube" #:|ent10935|*br*
 (legacy)  hmm. that makes little sense. okay well i'll have to get set up and try this out. impossible to debug from 30,000 feet.*br*
 (legacy)  Looking back at your -3 output of paintworld, it isn't clear that the NL component is even getting the "-3". Notice that no number shows up in the world description. Are you sure some preprocessing phase isn't filtering out the -3?*br*
 (legacy)  I'm definitely passing it through.*br**br*WE* (trace nlp::paint-world)*br**br*(NLP::PAINT-WORLD)*br*WE* (pw "the sphere is -3 feet to the left of the cube.")*br* 0: (NLP::PAINT-WORLD ("the sphere is -3 feet to the left of the cube"))*br* 0: NLP::PAINT-WORLD returned [ENTITY: "Main World" #:|world10567|*br**br*WORLD: "Main World" #:|world10567|*br* Collection: "foot" #:|coll10666|*br* *Members:*br* **br* Entity: "cube" #:|ent10668|*br* Relation: "to the left of" "STATIVE"*br* FIGURE: "foot" #:|coll10666|*br* GROUND: "cube" #:|ent10668|*br* *br*[ENTITY: "Main World" #:|world10567|*br*WE*
 (legacy)  That makes no sense. I can't imagine what I am doing that would only affect the literal string "-3"
 (legacy)  Never mind. I found it.*br**br*Comment out the following line in en-tags.lisp:*br**br* ("-3" (("SYM" 0.0)))*br*
 (legacy)  ok, i'll do that.
Share to