2009: Difference between revisions

From Computer Laboratory Group Design Projects
Jump to navigationJump to search
(Created page with "Alpha: Animating Algorithms Much of practical computer science can be explained by drawing boxes and arrows that represent data structures. The content of the boxes and the co...")
 
No edit summary
 
Line 1: Line 1:
Alpha: Animating Algorithms
Alpha: Animating Algorithms
Much of practical computer science can be explained by drawing boxes and arrows that represent data structures. The content of the boxes and the connectivity of the lines then changes as an algorithm proceeds. This is difficult to achieve using whiteboards or drawing programs. What is needed is a program that produces slow-motion animated films of data structures and algorithms at work. The system should provide a general mechanism for writing an animation script and connecting it to an implemented algorithm. The user should be able to set up the initial data for a variety of algorithms and then step through to watch their operation. It would be convenient if the resulting movie can be exported in a form suitable for viewing online or including in a PowerPoint presentation.
Much of practical computer science can be explained by drawing boxes and arrows that represent data structures. The content of the boxes and the connectivity of the lines then changes as an algorithm proceeds. This is difficult to achieve using whiteboards or drawing programs. What is needed is a program that produces slow-motion animated films of data structures and algorithms at work. The system should provide a general mechanism for writing an animation script and connecting it to an implemented algorithm. The user should be able to set up the initial data for a variety of algorithms and then step through to watch their operation. It would be convenient if the resulting movie can be exported in a form suitable for viewing online or including in a PowerPoint presentation.
Bravo: Magic board games (hardware project)
Bravo: Magic board games (hardware project)
Find a way to create a ‘magic’ board game in which a computer opponent moves the pieces invisibly, perhaps with magnets moving under the board. A significant amount of mechanical assembly and experimentation is likely to be necessary. This will be achieved using stepper motors, rotary encoders, and construction using a simple prototyping toolset such as Lego Technic.  
Find a way to create a ‘magic’ board game in which a computer opponent moves the pieces invisibly, perhaps with magnets moving under the board. A significant amount of mechanical assembly and experimentation is likely to be necessary. This will be achieved using stepper motors, rotary encoders, and construction using a simple prototyping toolset such as Lego Technic.  
Charlie: Wednesday Mash-up
Charlie: Wednesday Mash-up
The public seminars presented at the Computer Laboratory on Wednesday afternoons are accessible online from a video archive. At present, this archive allows viewers to replay the talk, but not index, tag, edit, or link it to other research and teaching material. Design an interactive tool that would allow a wider community of users to restructure and reorganise archived seminars for a greater variety of browsing, viewing and linking. Your tool need not be integrated into a web browser, or use web services for video streaming. A reasonable approach would be to make a special Java client (perhaps based on Java Media Framework) that allows users to download a whole video file and add local structured content that can later be viewed by others using the same client.
The public seminars presented at the Computer Laboratory on Wednesday afternoons are accessible online from a video archive. At present, this archive allows viewers to replay the talk, but not index, tag, edit, or link it to other research and teaching material. Design an interactive tool that would allow a wider community of users to restructure and reorganise archived seminars for a greater variety of browsing, viewing and linking. Your tool need not be integrated into a web browser, or use web services for video streaming. A reasonable approach would be to make a special Java client (perhaps based on Java Media Framework) that allows users to download a whole video file and add local structured content that can later be viewed by others using the same client.
Delta: Digital Logic Simulator
Delta: Digital Logic Simulator
Echo: Controllers for Kids (hardware project)
The UK school syllabus for Design and Technology encourages kids to gain experience of programming robots and other digitally-controlled gadgets. Those student projects are usually limited by slow hardware and clunky programming interfaces. Your task is to create a compiler that will allow Sixth Form D&T students to draw a state machine on their PC screen, then compile it into a form that can be downloaded and executed on a DE2 board, either as interpreted transition tables or by direct output of ARM instructions. You should build a physical demonstrator machine that shows off the versatility of your control system.
Foxtrot: Pocket Power Predictor
It's irritating when your mobile shows full battery power for 3 whole days, then suddenly drops to one flashing red bar as you're halfway through a text. It's even more annoying when that happens to your planet. The aim of this project is to design a pocket visualisation, running on Google Android, that will help you anticipate your future energy problems on all scales, from the phone itself, to your home heating and travel needs. The visualisation should also scale up to global problems, when you need rapid data for political debate. Use as many data sources as possible - RSS feeds, live updates on international agency websites, and the many sources of information from www.withouthotair.com
Golf: Statistical Persuasion Maker
A well-presented statistical argument is very valuable. Many politicians, policy makers and members of the public find it hard to understand risk factors, likelihood, and what the priorities for action should be in an uncertain world. But Al Gore's film An Inconvenient Truth showed the power of well-designed statistical graphics. Web sites like http://www.gapminder.org/ help people explore political and economic statistics, and sites like http://www.understandinguncertainty.org/  help people understand statistical principles through animations of risk data. But it is hard for regular people to create sites like these (it usually involves a lot of Flash programming). Your task is to create an authoring tool that helps people communicate statistical arguments by creating interactive online graphics. They might get help to structure the arguments, as in http://compendium.open.ac.uk/. They should also be able to collect their own data from online sources, for example using data mashup tools like Yahoo Pipes.
Hotel: Ring around the World
Design a web application that uses the Google Maps API to show the distribution of Computer Lab Ring members around the world. Include a secure protocol such that (with mutual consent) two members can exchange contact details when they live within a specified travelling distance, or are visiting the same location. All personal data must otherwise be securely protected, under the control of a database administrator.
India: Web 2.0 for Scholars
Businesses are rapidly moving to adopt ‘web 2.0’ approaches for product forums, marketing and on. Could such techniques improve academic research? The talks.cam system allows researchers across Cambridge to generate and access descriptions of the latest research. However, talks.cam doesn't include user recommendations, ratings, tagging and the other advanced features you'd expect in Web 2.0 content delivery systems such as Flickr, YouTube and so on. Using the XML interfaces to talks.cam, design a system that offers academics, prospective students, and the outside world, direct insight to whatever research is most relevant or exciting to them. See: http://talks.cam.ac.uk/document/specification
Juliet: Pipe Dreams
Design an online fantasy game in which players compete to reach items of treasure inside a three-dimensional maze of pipes and tanks. The display need not be three dimensional (it might use 2-D perspective renderings of the pipe interiors), but should give advice on which players have the best chance of reaching each treasure, based on speeds with which players can run around corners of varying radius, climb ladders versus sliding down, etc. Although players only see the inside of the maze, you can create a 3-D visualisation for use by a Game Master, by exporting the whole maze description to a rendering engine.
Kilo: Programming for Artists
Seymour Papert’s Logo, Steven Tanimoto’s Pixel Calculator, and John Maeda’s Design By Numbers have all tried to teach basic computational concepts by focusing on image manipulation. Your task is to design a new educational language, suitable for use by first-year art or architecture students. Your system should offer a sufficiently engaging aesthetic experience to keep art students interested at least until they have acquired concepts sufficient to create a simple interactive web animation or illustrated talk.
Lima: Street Video Wall (hardware project)
The public display screens in the Gates Building “Street” are informative, but don’t showcase the abilities of our students. Using the DE2 teaching boards, it should be possible to create a “video wall” that accepts VNC display commands and outputs a large display across multiple screens. Start with four screens, driven from four DE2 boards. Provide a software application interface suitable for use in a student design competition to create an interactive display that will impress visitors. The application interface might also provide audio, motion, SMS, web or environment sensing via the DE2 for multimodal interaction.
Mike: Mobile Map Service
One of the challenges of mobile information devices is that the available screen space is so much smaller than on desktop systems. This project is to create a restaurant, shop and entertainment finding service that provides users with attractive maps showing how to get to their advertising clients when users have a web browser, but simpler text instructions (“go left next corner” etc.) when accessed from a mobile phone. Information about the advertising clients, their location, and layout of local streets will be stored in XML format. Simple graphical maps will be constructed from this information by a Java applet that can be incorporated in web pages. SMS users will be able to access the same information, but rendered as a series of brief text instructions.
November: Sampling Synthesiser (hardware project)
Bands that use sampled sounds often want to adjust the pitch, or even play a tune, as in novelty tracks where a barking dog sings Happy Birthday. The DE2 board can be used for simple signal processing. Your task is to turn it into a synthesiser, using sound captured and downloaded from a CD, so that it can be played directly as a musical instrument or used as a remote synthesiser.
Oscar: Graphical Shared Wiki Editor
TinyMCE is a platform independent WYSIWYG editor for HTML that is a popular component of web content management systems. A typical application is a wiki-style environment, allowing users to click on a button in the page, after which their browser loads an editor window containing the page content, with formatting controls that save the resulting changes as HTML. The disadvantage of TinyMCE is that it doesn't allow multiple users to make edits at the same time (it would be necessary to handle contention between users), and it doesn't support advanced diagrammatic elements such as SVG. Your task is to make a multi-user collaborative editor that runs within a browser and generates wiki pages incorporating HTML and SVG.
lity simulator
the computer lab has recently built a highly parallel multi-processor 
research platform. using this platform (though initial development 
will probably have to use multiple processes or machines on the PWF ), 
your task is to build a simulator of a computation cycles market, in 
which processors compete to perform computations at greatest profit. 
any time that the processor is not actually computing, can be spent 
buying futures contracts on cycles from other processors, buying cycle 
reserves through mortgages, or aggregating debt for trading. the whole 
system should respond to external events (revenue comes from bidding 
to do calculation tasks from external users), and should provide 
status visualisation to assess system stability and performance. use a 
technique such as genetic algorithms so that individual processors can 
discover new strategies to maximise their profit at the expense of the 
others. necessary computation for visualisation or strategy evolution 
can also be traded.
technical help from Dr Mbou Eyole me265@cam.ac.uk
Pocket Power Predictor
It's irritating when your mobile shows full battery power for 3
whole days, then suddenly drops to one flashing red bar as you're
halfway through a text. It's even more annoying when that happens
to your planet. The aim of this project is to design a pocket
visualisation, running on Google Android, that will help you
anticipate your future energy problems on all scales, from the
phone itself, to your home heating and travel needs. The
visualisation should also scale up to global problems, when you
need rapid data for political debate. Use as many data sources as
possible - in-phone sensors such as accelerometers, online sources 
such as RSS feeds, live updates on international agency
websites, and the many sources of information from
www.withouthotair.com
laura@caret.cam.ac.uk
I'd be very happy to be a client for a talks "india" version. When 
would you need a revised description by?
With regard to your other ideas, making a collaborative version
of TinyMCE would be interesting. Perhaps even more interesting if
it allowed you to edit vector graphics as well as text?
Statistical Persuasion Maker
A well-presented statistical argument is very valuable. Many 
politicians, policy makers and members of the public find it hard to 
understand risk factors, likelihood, and what the priorities for 
action should be in an uncertain world. But Al Gore's film An 
Inconvenient Truth showed the power of well-designed statistical 
graphics. Web sites like http://www.gapminder.org/ help people explore 
political and economic statistics, and sites likehttp://www.understandinguncertainty.org/
  help people understand statistical principles through animations of 
risk data. But it is hard for regular people to create sites like 
these (it usually involves a lot of Flash programming). Your task is 
to create an authoring tool that helps people communicate statistical 
arguments by creating interactive online graphics. They might get help 
to structure the arguments, as in http://compendium.open.ac.uk/. They 
should also be able to collect their own data from online sources, for 
example using data mashup tools like Yahoo Pipes.
Interactive FPGA circuit simulator
"It would be useful if a first year computer scientist could rapidly
"It would be useful if a first year computer scientist could rapidly
prototype a circuit on an Altera DE2 FPGA board without using a hardware
prototype a circuit on an Altera DE2 FPGA board without using a hardware
Line 113: Line 26:
synthesised for direct implementation on the FPGA."
synthesised for direct implementation on the FPGA."


Echo: Controllers for Kids (hardware project)
The UK school syllabus for Design and Technology encourages kids to gain experience of programming robots and other digitally-controlled gadgets. Those student projects are usually limited by slow hardware and clunky programming interfaces. Your task is to create a compiler that will allow Sixth Form D&T students to draw a state machine on their PC screen, then compile it into a form that can be downloaded and executed on a DE2 board, either as interpreted transition tables or by direct output of ARM instructions. You should build a physical demonstrator machine that shows off the versatility of your control system.


Magic board games
Foxtrot: Pocket Power Predictor
It's irritating when your mobile shows full battery power for 3 whole days, then suddenly drops to one flashing red bar as you're halfway through a text. It's even more annoying when that happens to your planet. The aim of this project is to design a pocket visualisation, running on Google Android, that will help you anticipate your future energy problems on all scales, from the phone itself, to your home heating and travel needs. The visualisation should also scale up to global problems, when you need rapid data for political debate. Use as many data sources as possible - RSS feeds, live updates on international agency websites, and the many sources of information from www.withouthotair.com


Find a way to create a 'magic' board game in which a computer opponent 
Golf: Statistical Persuasion Maker
moves the pieces, perhaps with magnets moving under the board. A  
A well-presented statistical argument is very valuable. Many politicians, policy makers and members of the public find it hard to understand risk factors, likelihood, and what the priorities for action should be in an uncertain world. But Al Gore's film An Inconvenient Truth showed the power of well-designed statistical graphics. Web sites like http://www.gapminder.org/ help people explore political and economic statistics, and sites like http://www.understandinguncertainty.org/ help people understand statistical principles through animations of risk data. But it is hard for regular people to create sites like these (it usually involves a lot of Flash programming). Your task is to create an authoring tool that helps people communicate statistical arguments by creating interactive online graphics. They might get help to structure the arguments, as in http://compendium.open.ac.uk/. They should also be able to collect their own data from online sources, for example using data mashup tools like Yahoo Pipes.
significant amount of mechanical assembly and experimentation is
likely to be necessary


technical assistance from brian jones bdj23@cl.cam.ac.uk
Hotel: Ring around the World
Design a web application that uses the Google Maps API to show the distribution of Computer Lab Ring members around the world. Include a secure protocol such that (with mutual consent) two members can exchange contact details when they live within a specified travelling distance, or are visiting the same location. All personal data must otherwise be securely protected, under the control of a database administrator.


Indoor navigation
India: Web 2.0 for Scholars
Businesses are rapidly moving to adopt ‘web 2.0’ approaches for product forums, marketing and on. Could such techniques improve academic research? The talks.cam system allows researchers across Cambridge to generate and access descriptions of the latest research. However, talks.cam doesn't include user recommendations, ratings, tagging and the other advanced features you'd expect in Web 2.0 content delivery systems such as Flickr, YouTube and so on. Using the XML interfaces to talks.cam, design a system that offers academics, prospective students, and the outside world, direct insight to whatever research is most relevant or exciting to them. See: http://talks.cam.ac.uk/document/specification


Mobile phones often have GPS receivers and offer navigation systems.
Juliet: Pipe Dreams
However, these do not work indoors.  A camera could be used to recognise
Design an online fantasy game in which players compete to reach items of treasure inside a three-dimensional maze of pipes and tanks. The display need not be three dimensional (it might use 2-D perspective renderings of the pipe interiors), but should give advice on which players have the best chance of reaching each treasure, based on speeds with which players can run around corners of varying radius, climb ladders versus sliding down, etc. Although players only see the inside of the maze, you can create a 3-D visualisation for use by a Game Master, by exporting the whole maze description to a rendering engine.
landmarks [1,2] and offer an alternative indoor location and navigation
 
system. Build a suitable navigation system for the William Gates
Lima: Street Video Wall (hardware project)
Building, giving suitable thought to how the system would scale to many
The public display screens in the Gates Building “Street” are informative, but don’t showcase the abilities of our students. Using the DE2 teaching boards, it should be possible to create a “video wall” that accepts VNC display commands and outputs a large display across multiple screens. Start with four screens, driven from four DE2 boards. Provide a software application interface suitable for use in a student design competition to create an interactive display that will impress visitors. The application interface might also provide audio, motion, SMS, web or environment sensing via the DE2 for multimodal interaction.
buildings.


Quentin Stafford Fraser quentin@pobox.com
Mike: Mobile Map Service
michael.dales@camvine.com
One of the challenges of mobile information devices is that the available screen space is so much smaller than on desktop systems. This project is to create a restaurant, shop and entertainment finding service that provides users with attractive maps showing how to get to their advertising clients when users have a web browser, but simpler text instructions (“go left next corner” etc.) when accessed from a mobile phone. Information about the advertising clients, their location, and layout of local streets will be stored in XML format. Simple graphical maps will be constructed from this information by a Java applet that can be incorporated in web pages. SMS users will be able to access the same information, but rendered as a series of brief text instructions.


Lima: Street Video Wall (hardware project)
November: Sampling Synthesiser (hardware project)
Bands that use sampled sounds often want to adjust the pitch, or even play a tune, as in novelty tracks where a barking dog sings Happy Birthday. The DE2 board can be used for simple signal processing. Your task is to turn it into a synthesiser, using sound captured and downloaded from a CD, so that it can be played directly as a musical instrument or used as a remote synthesiser.


The public display screens in the Gates Building 'Street' are
Oscar: Graphical Shared Wiki Editor
informative, but don't showcase the abilities of our students.
TinyMCE is a platform independent WYSIWYG editor for HTML that is a popular component of web content management systems. A typical application is a wiki-style environment, allowing users to click on a button in the page, after which their browser loads an editor window containing the page content, with formatting controls that save the resulting changes as HTML. The disadvantage of TinyMCE is that it doesn't allow multiple users to make edits at the same time (it would be necessary to handle contention between users), and it doesn't support advanced diagrammatic elements such as SVG. Your task is to make a multi-user collaborative editor that runs within a browser and generates wiki pages incorporating HTML and SVG.
Using the DE2 teaching boards, it should be possible to create a
'video wall' that accepts VNC display commands and outputs a
large display across multiple screens. Start with four screens,
driven from four DE2 boards. Provide a software application
interface suitable for use in a student design competition to
create an interactive display that will impress visitors. The
application interface might also provide audio, motion, SMS, web
or environment sensing via the DE2 for multimodal interaction. 11

Latest revision as of 11:16, 30 September 2014

Alpha: Animating Algorithms Much of practical computer science can be explained by drawing boxes and arrows that represent data structures. The content of the boxes and the connectivity of the lines then changes as an algorithm proceeds. This is difficult to achieve using whiteboards or drawing programs. What is needed is a program that produces slow-motion animated films of data structures and algorithms at work. The system should provide a general mechanism for writing an animation script and connecting it to an implemented algorithm. The user should be able to set up the initial data for a variety of algorithms and then step through to watch their operation. It would be convenient if the resulting movie can be exported in a form suitable for viewing online or including in a PowerPoint presentation.

Bravo: Magic board games (hardware project) Find a way to create a ‘magic’ board game in which a computer opponent moves the pieces invisibly, perhaps with magnets moving under the board. A significant amount of mechanical assembly and experimentation is likely to be necessary. This will be achieved using stepper motors, rotary encoders, and construction using a simple prototyping toolset such as Lego Technic.

Charlie: Wednesday Mash-up The public seminars presented at the Computer Laboratory on Wednesday afternoons are accessible online from a video archive. At present, this archive allows viewers to replay the talk, but not index, tag, edit, or link it to other research and teaching material. Design an interactive tool that would allow a wider community of users to restructure and reorganise archived seminars for a greater variety of browsing, viewing and linking. Your tool need not be integrated into a web browser, or use web services for video streaming. A reasonable approach would be to make a special Java client (perhaps based on Java Media Framework) that allows users to download a whole video file and add local structured content that can later be viewed by others using the same client.

Delta: Digital Logic Simulator "It would be useful if a first year computer scientist could rapidly prototype a circuit on an Altera DE2 FPGA board without using a hardware description language. The user interface might be presented as a graphical circuit entry system allowing the user to select components from a library (including, 2- and 3-input NOR and NAND gates, RS-latch and D flip-flop) and place them on the screen. Additional components like RAMs and ROMs would be desirable. Switches and LEDs that are present on the DE2 board should be present in the graphical environment to allow circuits to interfaced to them. Saving and loading of circuits is desirable. Circuits created should be simulated on the DE2 board. The transfer of the circuit to the FPGA simulation might happen in real-time (i.e. any change in the circuit is reflected "instantly" in the simulation). The simulation might be performed in software by a soft processor on the FPGA. For a high performance implementation, the graphical circuit might also be written out as Verilog and then synthesised for direct implementation on the FPGA."

Echo: Controllers for Kids (hardware project) The UK school syllabus for Design and Technology encourages kids to gain experience of programming robots and other digitally-controlled gadgets. Those student projects are usually limited by slow hardware and clunky programming interfaces. Your task is to create a compiler that will allow Sixth Form D&T students to draw a state machine on their PC screen, then compile it into a form that can be downloaded and executed on a DE2 board, either as interpreted transition tables or by direct output of ARM instructions. You should build a physical demonstrator machine that shows off the versatility of your control system.

Foxtrot: Pocket Power Predictor It's irritating when your mobile shows full battery power for 3 whole days, then suddenly drops to one flashing red bar as you're halfway through a text. It's even more annoying when that happens to your planet. The aim of this project is to design a pocket visualisation, running on Google Android, that will help you anticipate your future energy problems on all scales, from the phone itself, to your home heating and travel needs. The visualisation should also scale up to global problems, when you need rapid data for political debate. Use as many data sources as possible - RSS feeds, live updates on international agency websites, and the many sources of information from www.withouthotair.com

Golf: Statistical Persuasion Maker A well-presented statistical argument is very valuable. Many politicians, policy makers and members of the public find it hard to understand risk factors, likelihood, and what the priorities for action should be in an uncertain world. But Al Gore's film An Inconvenient Truth showed the power of well-designed statistical graphics. Web sites like http://www.gapminder.org/ help people explore political and economic statistics, and sites like http://www.understandinguncertainty.org/ help people understand statistical principles through animations of risk data. But it is hard for regular people to create sites like these (it usually involves a lot of Flash programming). Your task is to create an authoring tool that helps people communicate statistical arguments by creating interactive online graphics. They might get help to structure the arguments, as in http://compendium.open.ac.uk/. They should also be able to collect their own data from online sources, for example using data mashup tools like Yahoo Pipes.

Hotel: Ring around the World Design a web application that uses the Google Maps API to show the distribution of Computer Lab Ring members around the world. Include a secure protocol such that (with mutual consent) two members can exchange contact details when they live within a specified travelling distance, or are visiting the same location. All personal data must otherwise be securely protected, under the control of a database administrator.

India: Web 2.0 for Scholars Businesses are rapidly moving to adopt ‘web 2.0’ approaches for product forums, marketing and on. Could such techniques improve academic research? The talks.cam system allows researchers across Cambridge to generate and access descriptions of the latest research. However, talks.cam doesn't include user recommendations, ratings, tagging and the other advanced features you'd expect in Web 2.0 content delivery systems such as Flickr, YouTube and so on. Using the XML interfaces to talks.cam, design a system that offers academics, prospective students, and the outside world, direct insight to whatever research is most relevant or exciting to them. See: http://talks.cam.ac.uk/document/specification

Juliet: Pipe Dreams Design an online fantasy game in which players compete to reach items of treasure inside a three-dimensional maze of pipes and tanks. The display need not be three dimensional (it might use 2-D perspective renderings of the pipe interiors), but should give advice on which players have the best chance of reaching each treasure, based on speeds with which players can run around corners of varying radius, climb ladders versus sliding down, etc. Although players only see the inside of the maze, you can create a 3-D visualisation for use by a Game Master, by exporting the whole maze description to a rendering engine.

Lima: Street Video Wall (hardware project) The public display screens in the Gates Building “Street” are informative, but don’t showcase the abilities of our students. Using the DE2 teaching boards, it should be possible to create a “video wall” that accepts VNC display commands and outputs a large display across multiple screens. Start with four screens, driven from four DE2 boards. Provide a software application interface suitable for use in a student design competition to create an interactive display that will impress visitors. The application interface might also provide audio, motion, SMS, web or environment sensing via the DE2 for multimodal interaction.

Mike: Mobile Map Service One of the challenges of mobile information devices is that the available screen space is so much smaller than on desktop systems. This project is to create a restaurant, shop and entertainment finding service that provides users with attractive maps showing how to get to their advertising clients when users have a web browser, but simpler text instructions (“go left next corner” etc.) when accessed from a mobile phone. Information about the advertising clients, their location, and layout of local streets will be stored in XML format. Simple graphical maps will be constructed from this information by a Java applet that can be incorporated in web pages. SMS users will be able to access the same information, but rendered as a series of brief text instructions.

November: Sampling Synthesiser (hardware project) Bands that use sampled sounds often want to adjust the pitch, or even play a tune, as in novelty tracks where a barking dog sings Happy Birthday. The DE2 board can be used for simple signal processing. Your task is to turn it into a synthesiser, using sound captured and downloaded from a CD, so that it can be played directly as a musical instrument or used as a remote synthesiser.

Oscar: Graphical Shared Wiki Editor TinyMCE is a platform independent WYSIWYG editor for HTML that is a popular component of web content management systems. A typical application is a wiki-style environment, allowing users to click on a button in the page, after which their browser loads an editor window containing the page content, with formatting controls that save the resulting changes as HTML. The disadvantage of TinyMCE is that it doesn't allow multiple users to make edits at the same time (it would be necessary to handle contention between users), and it doesn't support advanced diagrammatic elements such as SVG. Your task is to make a multi-user collaborative editor that runs within a browser and generates wiki pages incorporating HTML and SVG.