Xizhi Li's Project Index

My Formal Projects: 2001 - present

This page provides a list of my formal projects from 2001 to present. They are ordered by starting time. All projects are at least finished in version 1.0. Some are still under further development. For each project, I provide a further reading section where interested readers can order any listed artifact by writing the author (me) an email. Because of copyright issues and lack of web space, I did not provide direct download for all of them. Please note, I maintain this page less frequently than the publication page where a complete article reference can always be found.

ParaEngine or 3D parallel game engine

Futher reading:
New: ParaEngine Tech Website. Click here.
Li Xizhi. ParaEngine Reference Book . (book: 700 pages, 2004/8)
Li Xizhi, Li Tiecai. ParaEngine and Parallel World Game. (in Chinese)
Li Xizhi, Li Tiecai. Multi-Agent System, Neuron network and Parallel World Game. (in Chinese)
Li Xizhi, Game Engine Movie [download:38MB]
Li Xizhi. Using Neural Parallel Language in Distributed Game World Composing. IEEE conf. Distributed Framework of Multimedia Applications' 05

ParaEngine is aimed to develop networked, cooperative, high-quality 3D games. Parallel World is a distributed game, built on top of ParaEngine. Player may have its own game world hosted like a personal website on its PC or other web servers. Beside my own zest in making networked computer games, ParaEngine is also the testbed for many of my research works, such as the simulation theory used in learning and synthesizing human animations, the neural parallel language, the distributed HCI framework, etc.

Supported OS:

Windows XP/2000/2003 server

API:

DirectX 9.0C

Language:

C/C++ (VS.NET 7.1)

Features:

Graphic engine:

  1. 3D scene management and rendering system, supporting 40,000m*40,000m continuous game world. It is suitable for RPG games with super large continuous map, many globally movable characters, complex scene triggers and story design.
  2. Advanced programmable pipeline for all renderable objects in the scene.
  3. Flexible shader management on a per object basis. One can dynamically change the shader program of any scene objects on a per frame basis.
  4. Fixed function pipeline support, which allows the game engine to run on older machines while retaining most of the graphics qualities. It can be mixed with the programmable pipeline to adapt to a wide variety of graphics cards on the market.
  5. Hardware-occlusion testing can be turned on in the rendering pipeline, if there are a huge number of small yet dense models in the game scene.
  6. Tile based ROAM/CLOD terrain engine. Because it is tiled, there is no limit to the size of the terrain. Terrain holes can be created dynamically, which allows game developers to build caves, tunnels or underground world directly in the same global terrain environment. In-game terrain editing supports height field modifications, unlimited multi-texturing on terrain surface, auto-breaking super large terrain texture files in to smaller ones, fast ray-tracing on global height field.
  7. FFT based ocean wave simulation with reflection and refraction mapping for both above and underwater scenes. The underwater scene has blur effect.
  8. Unlimited ranged light sources can be put anywhere in the game world.
  9. Robust shadows: supporting both shadow volume and shadow mapping at the same time.
  10. Game resource management system: textures (dds, png, tga, bmp, jpg), 3D objects (x file, m2, ParaX file), 3D skeletal animation (X file, m2 and ParaX file), effect file (FX file), sound (wav, mp3), virtual file management (zip), database file management.
  11. A comprehensive 2.5D GUI engine, fully scriptable through the NPL language. Drag and drop controls, scrollable containers, three-state buttons, list box, slider bar, grid view, AVI video player, edit box, IME edit box supporting various language input methods, supporting GUI objects attached to 3D scene objects.
  12. Skeletal animation with customizable character appearance and reconfigurable equipment, such as hair style, skin color, clothes, etc. Settings can be made persistent by the pre-designed database.
  13. Particle systems are supported in the animation systems
  14. Three customizable follow cameras modes and one free camera mode. The camera will automatically position itself to avoid collision with the view frustum and the physical environment. Thus, it is eligible for third-person RPG games.
  15. In-game movie recording in any movie format, such as AVI.
  16. Fast mouse ray-picking with 3D scene objects.
  17. [Effect] global sunlight simulation. It will affect shadows and scene illumination.
  18. [Effect] per-pixel lighting and fog can be turned on in each model shader.
  19. [Effect] For each renderable object, some other effects can be dynamically applied to it when necessary, such as object construction shader, occlusion shader, shadow mapping shader, etc.
  20. [Effect] Full screen glow effect and HDR.

Scripting engine:

  1. The build-in scripting engine is powered by NPL language. It mimics the functioning of neural networks and codes the logics of distributed game world into files that could be deployed to arbitrary runtime locations on the network.
  2. In the NPL programming environment, it makes little difference between developing network applications and stand-alone ones.
  3. All API of the game engine are exposed through the scripting interface, including GUI, game events, 3D scene management, AI game logics, resource management, networking, database queries, etc. It is possible to develop a traditional RPG game through the scripting interface only. The scripting interface is well documented with over 20, 000 lines of source code examples.
  4. The new scripting paradigm implies new ways of game content development on the following aspects: online game and game society establishment and maintenance, non-linear stand-alone AI behaviors and networked AI behaviors, stand-alone game story development and network distributed story development, game cut-scene design and interactive game movie shooting, game map design/storage/transmission, visual scripting environment, etc.
  5. All network behaviors are written in NPL.

Middleware support:

  1. Polygon level physics effect middleware support [optional]: Novodex [Havok, ODE]
  2. Vegetation middleware support [optional]: [speed tree]

AI, physics, and others:

  1. Fast character simulation engine. It supports a large number of characters on a vast continuous game world (as long as 32bits floating point position vector do not lose accuracy). It integrates well with the global terrain and ocean engine. It provides interfaces for path-finding, perception, collision detection and response. It supports ray picking based character controller. For each character, quite a few character sensors can be turned on to process custom character AI logics in the NPL script callback functions.
  2. AI controllers: multiple hard-coded AI controllers can be parameterized and combined with each other or with character sensor scripts to efficiently emulate convincing AI behaviors. Supported AI controllers are: (1) Movie controller: it can record and replay character actions in a time accurate manner. This is an easy way to build in-game character cinematic. (2) Sequence controller: a list of AI commands to be executed one or several per frame. It can be used to perform general NPC logics such as patrolling, dialoging, etc. (3) Combat controller: such as attack, evade, flee actions. (4) Face tracking controller: rotate the character¡¯s neck to face a target. (5) Follow controller: follow another object.
  3. Biped state manager. It is a finite state machine which applies jumping, walking and swimming animation, etc and their transitional animations automatically, according to the physical environment.
  4. Mount system: characters can be mounted on other characters, such as a person be ing mounted on a horse.
  5. Local database support, supporting most SQL-92 standard.
  6. Debugging and logging can be turned on which tracks all aspects of the game engine status.
  7. [Game object] missile object. Firing a missile to any place in the game world.
  8. [Game object] D&D based RPG character object. Character attributes are exposed through the scripting interface and character data is made persistent by the database. This is a helper game object for building simple RPG game.

Tools and libraries:

  1. 3dsmax7&8 model exporters: both static and animated models are supported. Characters with multiple animation sequences are also supported.
  2. 3dsmax terrain, scene exporters: this is written in 3dsmax script, and we allow users to modify the source code to suit their needs in their own specific level design tools.
  3. Virtual world builder: This is a simple to use in-game game development environment. It comes with a free collection of game art data. There are no sophisticated interfaces in it; even children can learn to play with it. One can create a huge 40,000m*40,000m game world by just mouse clicking and editing simple game events (the latter is only for serious users). Editable entities in the world builder includes: terrain, ocean, models, characters, GUI, sounds, lights, scripts, etc. It also supports a powerful feature called world inheritance, in which a new world can be built by inheriting from multiple existing game worlds. Virtual world builder is written entirely by our proprietary NPL scripting language and we allow users to modify the source code to suit their needs in their own specific level design tools. Chinese version only. English version is planned at the end of 2006.
  4. World asset manager: managing resources used in a game title. Source code in C#
  5. In-game movie recorder: with source code in NPL
  6. In-game GUI IDE: with source code in NPL
  7. Third party tools: virtual file browser, deep exploration (3D model viewers), sqlite analyzer (database query builder), ultra edit (optional script editor).

Documentation and support:

  1. NPL scripting reference: (150 pages) English version only.
  2. Demo ¡°Parallel World¡±: It is a distributed game, built on top of ParaEngine. Player may have its own game world hosted like a personal website on its PC or other web severs. It is available on our website at the end of 2006.
  3. Artists¡¯ guide: (50 pages) both Chinese and English version.
  4. Book ¡°Design and Implementation of a Distributed Game Engine¡±: (approx. 300 pages) written by the main author of ParaEngine. Available in print in September 2006. English version only. Chinese version is planned at the end of 2006.
  5. ParaEngine source code and design documentation: (approx. 2000 pages) only available for enterprise edition users. English version only.
  6. Website forums: http://www.paraengine.com?

Summary:

ParaEngine is a distributed 3D computer game engine. It aims to develop the next generation online games, where the game world content and logics are distributed over arbitrary networks.

License:

To be released in three editions:

  1. Personal Edition: (Free of charge.) Users can take the full advantage of NPL to construct their own virtual game world. The following is also available: source code of virtual world builder written in NPL language, documentation and tutorials of NPL, all ParaEngine related tools and libraries. It can be used for non-commercial uses and commercial uses with some limitations. Available in September 2006.
  2. Professional Edition: The personal edition plus partial source code of the game engine and technical support. Available now.
  3. Enterprise Edition: The professional edition plus source code of the game engine and technical support. We can also modify the game engine according to your needs. Available now.

 

Aerospace Robot
RobotA: the Physically-based Simulation and Real-time Visualization Platform

Futher reading:
Xizhi Li. RobotA: Development Manual and Report. (2005/02)
Please note: this project is developed by me on demand and is considered confidential at present. It is a personal project, but not initiated by my personal interest. However, in goal two, I listed my own plans for it.

RobotA is an outer space flight simulation and real-time visualization platform for the aerospace robot project. The design targets the following scenario: A satellite is orbiting the earth. A 6-joint robot arm is located on the satellite. A child satellite which is initially installed on the mother satellite can be dispatched from the mother satellite. The robot arm installed on the mother satellite can be used to recollect the child satellite. Both satellites may have their own trust engines.

Goal One

Goal two

 

Neural Parallel Language

Futher reading:
Li Xizhi. Using Neural Parallel Language in Distributed Game World Composing. IEEE conf. Distributed Framework of Multimedia Applications' 05
Li Xizhi. DHCI: an HCI Framework in Distributed Environment . (thesis: 2004/7)
Li Xizhi. ParaEngine Reference Book .Page1-36 (book: 700 pages, 2004/8)
Li Xizhi, Li Tiecai. Multi-Agent System, Neuron network and Parallel World Game. (in Chinese)

Neural Parallel Language or NPL is the networking and scripting language used in our 3D computer game engine . Metaphorically speaking, a game engine can be regarded as a local viewport and simulation space for a usually much larger 3D virtual reality space on the web and local disk. Globally referenced art resources and a separate (usually simplified) language system constitute a high-level game programming interface on top of the game engine itself. In some aspects, a game engine can be compared to a web browser, where multimedia files and HTML/XML constitute its high-level programming interface.

An important design issue of the game engine and its high-level programming interface is that, unlike most fixed and pre-compiled distributed applications, distributed game worlds are subject to constant content updates and even deployment site reconfigurations. In my viewpoint, the next generation high-level language may be programmed in a uniform manner independent of its networked runtime environments ; the resulting program code will be compiled automatically at their deployment sites; its runtime environments will ensure that the same program will function in the same way under arbitrary deployment scheme ; and its development environment may allow visualized design of parallel code and its deployment configurations . In other words, the compiling and deployment process may both be carried out in a distributed manner and environment ; whereas the source code is ignorant of this process . This calls for a new language dedicated to this task and a new human-computer interface (HCI) adopted by both its runtime s and the programming interface .

With this vision, I have proposed a neural network based programming paradigm called Neural Parallel Language or NPL to be used in my game engine . It mimics the functioning of neural networks and codes the logics of distributed game world into files that could be deployed to arbitrary runtime locations on the network. Both its programming interface and the game engine platform allows for arbitrary number of visualization and interaction clients running on the huge networked gaming space. The result is that thousands of players simultaneously play in a networked 3D environment which may be hosted on many game servers and even the players' own PCs.

Parallel World Game

Futher reading:
Li Xizhi, Li Tiecai. ParaEngine and Parallel World Game. (in Chinese)

Parallel World is a distributed game, built on top of ParaEngine. Player may have its own game world hosted like a personal website on its PC or other web servers. NPL is the enabling technology to script the ever evolving game world logic on the network. Both ParaEngine and NPL are from my own research projects.

MicroWindows program development and embedded-device simulation platform

Futher reading:
Li Xizhi. Design Document of MicroWindows Sim Platform. MicroWinForVC.pdf [download]

The whole project can be divided into the following intensely intertwined sub-domains.
A. MicroWindows Extension: A cross-platform GUI library for Win32 and Linux
a) Identifying the em85xx architecture.
b) Porting a device-independent GUI library from Linux edition (MicroWindows) to Win32.
c) Developing software interface for user-defined screen device driver.
d) Developing software interface for user-defined keyboard device driver.
e) Making the keyboard driver, somewhat compatible with the em85xx FIP driver module
B. MicroWindows embedded-hardware device simulator: integrated with the Microsoft Visual C++.Net IDE and Debugging environment.
a) User interface design to accommodate a monitor and a key board simulator.
b) Using another thread to run the simulated application program for em85xx. Multi-threading and data synchronization needs to be considered.
c) Writing the Screen driver implementation code for the MicroWindows Extension.
d) Writing the Keyboard driver implementation code for the MicroWindows Extension.
e) Writing FIP remote control simulation code for em85xx.
f) Rewriting GsSelect() event polling function for software simulator. It is a combo of the UNIX and DOS version. A simulated timeout is implemented in the polling mechanism.
C. Porting MicroWindows Sample applications and DVD Player program to the Simulator.
a) Porting sample applications from MicroWindows demos. The following samples are ported.
i. MyProgram.cpp: A very simple C++ application that shows a gif picture with MicroWindows APIs. IO operation and image display are illustrated.
ii. NTetris.c: A slightly more complex C application that implements the famous Tetris game. Win GUI and Message handling (for keyboards) are demonstrated in the sample.
b) DVD player: The original code of this application is provided by em85xx. Its event handling is based on its old polling mechanism with fip module; while its display interface is built upon a thin-wrapper (OsdWindow) of MicroWindows API. This mixture of coding style makes it extremely inefficient to be ported to the simulator.
D. Testing and documentation
a) Software-based tests performed on the software simulator (Windows NT edition)
b) Documentation edited and reviewed.
c) TODO: Performing tests with real hardware system: Integration into the hardware development cycle.
d) TODO: User application development: HTML browser, E-BOOK viewer.

Microprocessor and peripherals for motion control system --A verilog implementation optimized for FPGA with reduced MIPS instruction set and specialized I/O controls

Futher reading:
Li Xizhi. User guide: Mips Design suite . UserGuide.doc
Li Xizhi. Design Document. MP001_overview.pdf
Li Xizhi, Li Tiecai. ECOMIPS: An Economic MIPS CPU Design on FPGA . IWSOC'04 (workshop) [download]

The project's object is to integrate the self-functioning panel system circuit into the motion control FPGA chip. A causal definition of the panel system is given below. Panel system (PS) is a self-functioning control center for the motor control circuit. Its main function is to provide another mean to monitor and modify the behavior of the motor (by modifying its corresponding registers). The following components are included: 1) CPU: CPU core interface with reduced instruction sets and specialized IO controls 2) ROM: It contains read-only software program for the panel system. 3) RS-232 port: This standard serial port is usually connected to a general purpose computer (usually a PC) and can bypass the panel system (independent of its CPU) and send motion control commands to the motion control circuits. We may also consider providing the functionality of downloading PS program to the ROM through this port. 4) 6-Key keyboard interface: receive commands from the user through a simple key-stroke interface 5) 8-block LED interface: it's an interactive LED display to communicate with the end-user. Typically it displays parameters of the motion control system one at a time. During modification mode, it reacts to key-strokes by the end user possibly by blistering the digit that is being modified. It's all up to the program in ROM and the CPU instruction sets to define the logic. 6) Predefined ports: ports that may be used by the motion circuits to control or debug it at real-time. The benefits of implementing this design through FPGA are primarily reduced costs and increased performances.

Web Agent Framework

Futher reading:
LiXizhi, Interactive tutorials for web agent framework 1.1, File: Quick interactive tutorial.doc [ Download ]
Li Xizhi. A General Outlook on Multi-Agent System. (overview thesis: 2003/8) [download]
Li Xizhi, Li Tiecai. Multi-Agent System, Neuron network and Parallel World Game. (in Chinese)
LiXizhi, Report: Security and Relation-forming in Multi-Agent System [download]
LiXizhi, WAF : web-agent based personal information publishing tools, File: WAF-PIP tool.doc
LiXizhi, White paper for WAF, File: White paper for WAF.doc
LiXizhi, 2003 Mid term report for Microsoft Innovation cup programming contest, File: Mid term report.doc
LiXizhi, Web Agent Framework archi-review , File: Web Agent Framework archi-review.doc
LiXizhi. A neuron-based authentication mechanism.doc
LiXizhi. Client Agent Mainframe work Specification.doc
LiXizhi. Security and relation.doc
LiXizhi. WAS specification.doc
LiXizhi. Web Agent Framework Reengineering.doc
LiXizhi. Web agent framework setup. WAF_concise.rar [download]
LiXizhi. Introduction Movie. Codec [download] preface.avi [download]

Web agent framework or WAF is a web-alike topology multi-agent system application. It aims to create a visible virtual human relationship network on the Internet. Using agent to represent human beings and provide information to other visitors (including agent) is not a new idea. However, current implementations lack a flexible user interface to convince users that agents are active humanoid entities that exist on the network with them. This is due to static user interfaces and conventional object manipulation techniques adopted by these agent applications.

In WAF, user's navigation path can be visualized in an off-line tree graph. The client explorer of WAF will remember each visited agent as well as any downloaded artifacts such as a piece of news or a group of other related agents (e.g. friend agents). It allows reconfiguration of the topology of all these intelligent agents as well as data resources on the client side and save them into local map files. Agents and information in these map files can be updated automatically when they are reactivated or re-opened from the history records kept in the local memory pool(database); they can later be used as the starting point of a new navigation or just provide a group of related web services to its user.

In WAF, although most computing occurs at the place where agents are actually situated, users (including other agents) can customize foreign agent references in different activation maps on their local environment. In our everyday life, we accept the existence of an object only through different perspectives and from many situations in which it used to act. Likewise, in order to let people accept the existence of an agent, the user is allowed to create multiple situations in which the same agent is referenced.

Funding interface for Home Design and Improvement System (HDIS)

Futher reading:
Team work. Full Software Engineering Document Suite. [Documentation site]
Li Xizhi. HDIS website: Funding Interface . [Website] : this website provide executable downloads and all software engineering document. It is originally an ASP.NET website. However, the version put up here is pure HTML just for introductory purposes.

Funding interface is an interface division of the Home Design and Improvement System (HDIS). Funding is an extremely difficulty task when there are too many funding items to be managed like in the HDIS. As an interface component in the HDIS, the funding interface features to make it easier than ever to manage users' finances and investments. The user is no longer buried in paper bills, and is prevented from making any calculation mistakes, relieved from going place to place to do the transactions. Instead, the funding interface in the HDIS will manage all the finances and investment with a single user account in an integrated user interface---all transaction views, data validation, personal budgets, etc can be browsed and edited in the funding UI. Funding UI also provides data interface to the HDIS components, so that the whole HDIS automation system will help (guide) the end user through managing the user's money. The funding interface alone is a separate money management software, although additional features are provided to work with the HDIS integration environment.

Plane plot: A civic pipeline plotting tool

Futher reading:
Li Xizhi. Project Report Website.
Li Xizhi. User guide website.
Li Xizhi. Plotting Tool: software suite. [Download].

PlaneView is a network graph generating system created for a wide range of applications. It's initially coming from the needs of designing AI neural networks. But this software's first application has been in a Water pipeline project to aid the design and calculation of city water pipeline system
For this release the following function and tools are shipped with the software.

Directory Robot

Futher reading:
Li Xizhi. User manual.
Li Xizhi. DirBob software suite. [Download]

The original version of this DirRobot was finished in 2003, February, with the simple need to build a personal website from hard disk tree folders. A little bit automation is achieved with an agent interface.

Email: lxz1982@hotmail.com | Built by Li, Xizhi ©2004 Leave me a message