* Add embedded MCP server exposing MapMap control over local HTTP Adds a native Model Context Protocol server (QHttpServer, JSON-RPC 2.0) running on the GUI thread, exposing sources, layers, playback, project I/O and state read-back to MCP clients at http://localhost:<port>/mcp. The port is configurable via QSettings (mcpListeningPort, default 49452) and a new -m/--mcp-port CLI flag; 0 disables the server. Requires the QtHttpServer module (and its QtWebSockets dependency). Add port preference UI Adapt McpServer to Paint->Source and Mapping->Layer renames. Fix QHttpServer::listen() removal in Qt 6.11 by using QTcpServer::listen() with QHttpServer::bind(). Add MCP port spinbox to Preferences Controls tab (0 disables the server). * Make MCP server build optional when qthttpserver is unavailable Use qtHaveModule(httpserver) to conditionally enable MCP support, guarded by HAVE_MCP preprocessor define throughout the codebase. This fixes CI builds on platforms without the Qt HttpServer module. * Add create_layer tool to MCP server for triangle, quad and ellipse shapes Move addMesh/addTriangle/addEllipse from private to public slots in MainWindow so the MCP server can call them directly. * Add Claude Code skill for controlling MapMap via MCP * Add set_vertices MCP tool and update skill doc Allows setting the output shape vertices of a layer via MCP. Documents vertex ordering and the new tool in the skill file. * Guard mcpListeningPort write in writeSettings with HAVE_MCP The member variable is only declared under #ifdef HAVE_MCP, so writing it in writeSettings also needs the guard to fix the build when qthttpserver is unavailable.
MapMap
MapMap is a free video mapping software.
Projection mapping, also known as video mapping and spatial augmented reality, is a projection technology used to turn objects, often irregularly shaped, into a display surface for video projection. These objects may be complex industrial landscapes, such as buildings. By using specialized software, a two or three dimensional object is spatially mapped on the virtual program which mimics the real environment it is to be projected on. The software can interact with a projector to fit any desired image onto the surface of that object. This technique is used by artists and advertisers alike who can add extra dimensions, optical illusions, and notions of movement onto previously static objects. The video is commonly combined with, or triggered by, audio to create an audio-visual narrative.
Build status
Acknowledgements
This project is sponsored by Art Plus Code. https://www.artpluscode.com/
This project was made possible by the support of the International Organization of La Francophonie. http://www.francophonie.org/
Ce projet a été rendu possible grâce au support de l'Organisation internationale de la Francophonie. http://www.francophonie.org/
This project also received the support of Perte de Signal. https://perte-de-signal.org/
Build and installation
To build and install it, see the INSTALL file provided with the source code.
To use this software on Gnu/Linux with window managers other than Unity, make sure that this package is NOT installed: appmenu-qt5 or else the menu will not show.
Authors
- Alexandre Quessy: lead developer, release manager, technical writer, project manager.
- Sofian Audry: original lead developer, user interface designer, project manager.
- Dame Diongue: developer.
- Mike Latona: user interface designer.
- Vasilis Liaskovitis: developer.
Contributors
- Lucas Adair : developer, macOS packaging.
- Christian Ambaud: sponsor, inspiration.
- Alex Barry: user experience design.
- Eliza Bennett : documentation, chinese translation.
- Jonathan Roman Bland : developer.
- Sylvain Cormier: developer.
- Maxime Damecour: inspiration.
- Louis Desjardins: project manager.
- Ian Donnelly : user interface designer, documentation.
- Gene Felice : video package, documentation.
- Julien Keable: developer.
- Marc Lavallée: help with packaging.
- Matthew Loewens : documentation, developer.
- Madison Suniga : documentation.
More info
Get more info from mapmapteam.github.io