Domain: alice.org
Stories and comments across the archive that link to alice.org.
Comments · 162
-
No story about Python...
... is complete without a link to Alice.
___ -
Alice, from U of Virginia
I just searched here, and it seems this little plugin got no attention at all from
/. yet.First, the home page and a little description:
- Alice is primarily a scripting and prototyping environment for 3D object behavior, not a 3D modeler
- Alice has been used for a myriad of applications, including interactive games, animations, training simulators, 3D animated technical diagrams, and virtual reality environments using head-mounted display devices. Have you seen or played the "Light Saber Game" yet?
One last thing: the server was incredibly slow for me, a little patience might help. Here's the google copy just in case.
PS: this plugin runs on top of Python.
-
Re:A less horrible introductory language..a nice easy way to get some graphics done so I would not be limited to text applications. An earlier poster mentioned this as well - that
Check out Alice. Alice uses a slightly modified version of Python to teach people programming by interactively programming a 3D environment. Your programs control the movements and behaviours of objects. Its only for Windows, but it is supposed to be very nice.
--"A society that will trade a little liberty for a little order will deserve neither and lose both."
-
Re:What's so innovative about Python?
Also look at www.alice.org for a very cool use of Python.
___ -
Consider AliceTake a look at the Alice project. It's a 3D, interactive programming environment.
Plus I'll throw in another vote for Python and its Computer Programming for Everyone project.
And it turns out that Alice and Python work together nicely. Hooray for your kids!
-
Re:Try Python
Actually, at www.alice.org, there is an entry-level 3D graphics programming environment using Python as a back end. It is extremely easy to use, and also extremely powerful. It's worth checking out, even if you aren't a beginner.
___ -
Logo or PythonEither logo or Python would be good choices. Logo has been around for years, and there are lots of good books and free implementations. Start at Brian Harvey's web page for more info. Logo is great because of its pretty simple syntax and turtle graphics, which lets you start drawing pictures right away.
Python is showing lots of promise as well -- its interactive, fairly simple syntax, has turtle graphics, but not the wealth of books for the younger set (actually, none). However, you must check out Alice - interactive 3D graphics for the web, with scripting for animations done in Python. Thats what I'm starting my 10 year old daughter on, falling back to logo if that doesn't work out.
-
Alice!Things that are visual tend to get kids' attention. Check out
Alice:
Alice is a rapid prototyping system for virtual reality software. Alice programs are written in an object-oriented, interpreted language which allows programmers to immediately see the effects of changes. As an Alice program executes, the author can update the current state either by interactively evaluating program code fragments, or by manipulating GUI tools. Although the system is extremely flexible at runtime, we are able to maintain high interactive frame rates (typically, 20-50 fps) by transparently decoupling simulation and rendering. We have been using Alice internally at Virginia for over two years, and we are currently porting a "desktop" version of Alice to Windows 95. We will distribute desktop Alice freely to all universities via the World Wide Web;
What is so remarkable about Alice is the degree to which it brings 3D graphics programming down from on high and puts it in the hands of non-computer scientists. With very little assistance, my 7 year-old son created programs in hours that would have taken me, a professional 3D graphics programmer, days to write using OpenGL.
Paul Prescod -
You might consider Alice
To quote:
Alice is a 3D Interactive Graphics Programming Environment for Windows 95/98/NT built by the Stage 3 Research Group at Carnegie Mellon University. The Alice project is a public service to the wider computing and artistic communities; our hope is to make it easy for novices to develop interesting 3D environments and to explore the new medium of interactive 3D graphics. The current version of Alice authoring tool is free to everyone and runs on computers that are commonly available for reasonable prices. Worlds created in Alice can be viewed and interacted with inside of a standard web browser once the Alice plug-in has been installed.
The scripting language used by Alice is a slightly modified version of Python, a language itself designed to be used by novices.
I don't have a windows box, so I haven't played with it, but it looks like it would be a good, fun way to ease kids into programming.
Corran
-
Re:3D engine as _first_ project?!
Umm... someone has already done this and called it Alice; take a look at the Alice tutorial. This is one of the inspirations for the CP4E effort, because it's been really successful at letting non-programmers do interesting things.
-
Re:Sounds Good...This project is at least partially inspired by Randy Pausch's use of Python in Alice, a 3D VR system for non-programmers (unfortunately Windows-only, but well worth checking out). Pausch gave an interesting talk at work about Alice, and showed some spectacular demos; it was impressive to see an Akira-inspired motorcycle ride through a cityscape, implemented by people after a single-semester course. Alice is used in a virtual-worlds course at CMU; students with no previous programming experience are expected to present their first VR environment two weeks after the start of the course.
The Alice developers modified Python in a few way to make it easier for their intended audience. The major changes were:
- Case-insensitivity: Pausch said that having 'Fred', 'fred', and 'FRED' be different variable names was confusing to their students.
- Python's numeric types work like C's; 3.0/2 is 1.5, but 3/2 is 1 (because both inputs are integers, therefore the result is also an integer). This is hopelessly confusing, so in Alice 3/2 is 1.5.
Those are the only changes I can remember from the talk, and it's a remarkably short list. They also avoided using XYZ coordinates, instead using object positions and directions. For example, you can say rabbit.lookAt(copter), after which an Energizer bunny object will always stare at a helicopter, no matter where the copter object is moved. People had no trouble with the idea of objects, but little things like case-sensitivity threw them.
-
Re:Python losesI'll cheerfully agree with most of Tom C.'s points on garbage collection, scoping, and the absence of super(). To correct some minor factual misstatements:
With python, the object is the way, the truth, and the light. Let no man cometh unto his data save through the object. In perl, OO is an option, not a requirement.
Hmm? You can quite happily store your data in interwoven dictionaries, lists, and tuples if you like, and never write a single class. If you want to talk about classes being a requirement, talk about Java.
With python, you cannot generate C code to compile into an a.out.
There's a Python-to-C translator, though it seems very experimental and I'm not familiar with its status; the author claims it will handle almost all Python code, but you know what those programmers are like. Of course, you can compile Python to Java bytecodes quite nicely using JPython.With python, the pattern matching is not tightly integrated into the language. It is merely loosely bolted on, which introduces inefficiencies and quoting clumsinesses.
True, but it also means you can leave it out if pattern matching isn't of interest to your application domain. People who want to run massive numeric simulations, build virtual environments, or run a large online role-playing game may not care about processing text. (Coincidences are funny things; while checking the third link, I went to reference.com and was startled when my search pulled up Python code on my screen -- someone forgot to make a CGI script executable, I suppose. reference.com is an application that does care about text searching, I would imagine.)
The greatest problems with regexes in Python 1.5 are:
- Parts of re.py are still written in Python, not C, and are therefore slow. Fixing that is on my list for 1.6.
- PCRE doesn't do a lot of optimizations and analyses. Mostly this is because the compiler doesn't build a parse tree and traverse it, but instead tries to construct a string of bytecodes in a single pass.
- Unicode regexes are an open issue at this point. I've been casting longing glances at the regex engine in Mozilla, which does build a nice parse tree and supports Unicode, and hope to work on splitting it out into a separate library.
With python, you cannot determine your calling context, nor behave differently dependent upon the same.
Python doesn't have the idea of scalar/array/etc context, so I don't see the relevance.With python, writing an eval string is a pain in the royal butt due to the insane whitespace problem.
If you're generating multiple blocks of code, then generating curly brackets and indentation are isomorphic problems; replace { with \n + indentation-level spaces, and replace '}' with newlines.With python, you have no equivalent to Apache's mod_perl.
PyApache (don't ask me why it's not called mod_python). Zope is more interesting still.