Dr. Mark Humphrys

School of Computing. Dublin City University.

Home      Blog      Teaching      Research      Contact

Online coding site: Ancient Brain

coders   JavaScript worlds

Search:

CA170      CA318      CA686      CA686I

Online AI coding exercises

Project ideas


Project ideas

Project ideas for 3rd year, 4th year or Masters (depending on how ambitious the project ends up).
  

I am interested in supervising projects in:

  1. Javascript
  2. WebGL
  3. Javascript graphics

  4. Web apps
  5. WebSockets
  6. Multi-user Web apps/games

  7. AI in Javascript / AI on the Web


I have a server, ancientbrain.com, that you can host all such projects on.





Ancient Brain

I am focused on projects for Ancient Brain, my site for coding JavaScript in the browser. There is a lot of scope for projects with this site.

To get familiar with the site, go to ancientbrain.com and go to How to code. The site has extensive help for coding JavaScript and coding JavaScript graphics.

See also my notes:

  



A JavaScript "World" used in teaching an AI course.
This World illustrates the "A star" algorithm in AI. It sets up a random maze and finds the shortest path through the maze. Reload for a new maze.
Users can clone this and edit their copy, and make changes to the problem and the algorithm to explore AI concepts.
See full explanation.
Click to run World: A star at Ancient Brain.



"One Cube World", the World used in the Ancient Brain Starter Tutorial.
Users who are learning to code can edit this, add textures, make multiple cubes, change rotation, and so on - all in the browser.
Click to run World: One Cube World (P5) at Ancient Brain.



An example of a modified copy of "One Cube World".
See other cube variants that users have made.
Click to run World: Interstellar cubes at Ancient Brain.



Demo of 3d model.
Click to run World: Car models with light reflection at Ancient Brain.
Open in new window ("Open window") to see full menu for this World.
In the menu, you can change car models and switch skin. ("Chrome" is nice.)



Demo of World with physics.
Click to run World: Collision World at Ancient Brain.
Mouse drag to move camera, and scroll to zoom camera.



Demo of 3d model.
Drag to rotate. Scroll to zoom. Click to throw paint.
Click to run World: webgl decals at Ancient Brain.



Project: Make a teaching course for schools and colleges

We believe Ancient Brain can be used in teaching coding in schools and colleges.
What it needs is someone to write a course or textbook.

We have some short courses:

But they are not yet using the site's full potential.

Ideas for courses:

  1. Coding for kids, making specific use of Ancient Brain features, and using kid-friendly language.
  2. Coding for 1st year undergrads.
  3. Coding JavaScript with advanced Three.js graphics. Aimed at established programmers.
  4. A course in Physics.
  5. A course in Mathematics.
  6. A course in Astronomy.
Ideas for how to do it:
  1. Teach concepts visually using 3D graphics and physics.
  2. Teach sorting numbers and strings by sorting actual 3D blocks. And so on.
  3. Use the Teaching World functionality. This has features like obfuscation to stop copying. Teacher can edit student solutions and make changes to see what happens.
Find a way to keep students away from the JS console:

Project: Port 400 Three.js examples to Ancient Brain

Port the following 400 Three.js examples to Ancient Brain.

Project: Generalised JS porter

Program to generalise porting.
Port any JavaScript anywhere to Ancient Brain.
Other JavaScript will typically needs edits in order to port it to a different site.

Typical edits needed:

  1. All libraries and assets need to be uploaded to Ancient Brain. (This is the Web single-origin policy.)
  2. All paths to libraries and assets need to be fixed.
  3. Sometimes paths need to be fixed inside secondary libraries.
  4. Ancient Brain does everything in JS. No CSS or HTML panels. So to include a CSS file you need to use:
     AB.loadCSS ( file.css ); 
  5. To include some CSS you need to use:
     AB.loadCSSstring ( multi line string ); 
  6. To make a div you use:
     AB.newDiv ( id ); 
  7. If the JS makes other DOM elements you may need to use the Webpage API rather than an API focused on graphics.

Ideas:

Project: AI in JS on Ancient Brain

Get an AI project, using say State Space Search, or Machine Learning, working on Ancient Brain.

This will probably use the World-Mind (problem-solution) division.

This may include third-party JS libraries for the AI algorithm. Or write your own.


  


Click to run World: Recognise any image at Ancient Brain.



Click to run World: Character recognition neural network at Ancient Brain.

Project: AI Chatbot on Ancient Brain


  

Project: Advanced game on Ancient Brain

There are many simple games on the site. Make something a bit more professional.
Ideas:

  

Project ideas: More Ancient Brain ideas

  1. Sprite animation

  2. 3D models

  3. Different types of World
    • A World like a movie - with a series of separate scenes. Scratch allows a lot of Worlds like this, to tell stories.
    • World which is like a PowerPoint with extra program features.

  4. Video
    • World which just displays a video. Easy with webpage API. And can upload mp4.
    • World which just displays a video inside the WebGL canvas.
    • P5 intro page shows a mix of video and P5 JS interaction on same screen. How is it done? See notes.

  5. Link multiple Worlds into one huge environment. How?
    • World links to other World in endless landscape. Like MineCraft.
    • Simple way: Come to end of one World. Door. When click to go through door, it loads JS for another World.
    • Other World is designed somehow to be added to existing canvas/universe, not to start a new one.
    • Reload page takes you to start.

  6. Does any P5 world exist with an MTL on an object?


  
ancientbrain.com      w2mind.org      humphrysfamilytree.com

On the Internet since 1987.      New 200 G VPS server.

Note: Links on this site to user-generated content like Wikipedia are highlighted in red as possibly unreliable. My view is that such links are highly useful but flawed.