Skip to content

Commit bc7c91f

Browse files
aalexclaude
andcommitted
Migrate site from Jekyll to Astro with multilingual support (EN/FR)
Replace single-page Jekyll site with a multi-page Astro site using Tailwind CSS. Content is split into 4 pages (home, download, docs, support) with full French translations. Includes GitHub Actions deployment workflow and language switcher. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent cd31641 commit bc7c91f

48 files changed

Lines changed: 7320 additions & 195 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/deploy.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Deploy to GitHub Pages
2+
3+
on:
4+
push:
5+
branches: [master]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
pages: write
11+
id-token: write
12+
13+
concurrency:
14+
group: pages
15+
cancel-in-progress: false
16+
17+
jobs:
18+
build:
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: actions/checkout@v4
22+
- uses: actions/setup-node@v4
23+
with:
24+
node-version: 20
25+
cache: npm
26+
- run: npm ci
27+
- run: npm run build
28+
- uses: actions/upload-pages-artifact@v3
29+
with:
30+
path: ./dist
31+
32+
deploy:
33+
needs: build
34+
runs-on: ubuntu-latest
35+
environment:
36+
name: github-pages
37+
url: ${{ steps.deployment.outputs.page_url }}
38+
steps:
39+
- name: Deploy to GitHub Pages
40+
id: deployment
41+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
node_modules/
2+
dist/
3+
.astro/

README.md

Lines changed: 25 additions & 194 deletions
Original file line numberDiff line numberDiff line change
@@ -1,208 +1,39 @@
1-
# MapMap - open source video mapping software
1+
# MapMap Website
22

3-
## Overview
4-
MapMap is a free, open source software for projection mapping aimed at artists and small teams. Its intuitive interface facilitates learning and promotes artistic expression. This software is available on Windows, OSX, and Linux. MapMap gives users the ability to projection map on any surface of choice. Mapmap takes media sources and gives users the ability to manipulate the media into different positions and shapes. Media sources can come from any various accepted media formats. With an easy to understand interface, new users can get started in minutes.
3+
The official website for [MapMap](https://github.com/mapmapteam/mapmap), an open source video mapping software.
54

6-
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.
5+
Built with [Astro](https://astro.build/) and deployed to GitHub Pages.
76

8-
[Click here for a video demo](https://vimeo.com/177538718)
7+
## Local Development
98

10-
![MapMap workshop](http://projection-mapping.org/wp-content/uploads/2017/08/mapmap-workshop.jpg)
9+
```bash
10+
npm install
11+
npm run dev
12+
```
1113

12-
## Download and install
14+
The site will be available at `http://localhost:4321`.
1315

14-
The latest version of MapMap can be find at these links:
16+
## Build
1517

16-
- [macOS 0.6.2 DMG](http://download.mapmap.info/osx/MapMap-0.6.2-1.dmg) or [macOS 0.6.2 ZIP](http://download.mapmap.info/osx/MapMap-0.6.2-1_macOS.zip) - Note that macOS users need to also install [GStreamer](https://gstreamer.freedesktop.org/data/pkg/osx/1.14.0/gstreamer-1.0-1.14.0-x86_64.pkg) separately.
17-
- [Linux APT repository](https://launchpad.net/~mapmap/+archive/ubuntu/mapmap)
18-
- [Windows 0.6.3 installer](http://download.mapmap.info/windows/mapmap-0.6.3-x86-installer.exe)
19-
- [Source code 0.6.2 tarball](http://download.mapmap.info/tarballs/mapmap-0.6.2.tar.gz)
20-
- [Source code Git repository of MapMap](https://github.com/mapmapteam/mapmap)
18+
```bash
19+
npm run build
20+
```
2121

22-
Older versions:
22+
Static output goes to `./dist/`.
2323

24-
- [macOS](http://download.mapmap.info/osx/)
25-
- [Windows](http://download.mapmap.info/windows/)
26-
- [Source tarballs](http://download.mapmap.info/tarballs)
24+
## Structure
2725

28-
## Launching the application
29-
On macOS, open the application by either double-clicking on its icon in the Finder, or by clicking on its icon in the Dock.
26+
- `src/data/en/` — English content (markdown)
27+
- `src/data/fr/` — French content (markdown)
28+
- `src/pages/` — Astro page routes
29+
- `src/components/` — Reusable components
30+
- `src/i18n/` — Translation utilities and UI strings
31+
- `public/images/` — Documentation screenshots
3032

31-
On Debian or Ubuntu GNU/Linux, find its icon in the application menu and click it. You can also run it via the command-line by typing "mapmap".
33+
## Adding Content
3234

33-
On Windows, click on the windows icon and type in mapmap. Click on the MapMap icon to then launch the program.
35+
Edit the markdown files in `src/data/en/` and `src/data/fr/`. The site has 4 pages per language: home, download, docs, and support.
3436

35-
## Layout
36-
MapMap consists of several different windows, icons, and menu options. The main windows are the Library, Layers, Input Editor and Output Editor.
37+
## Deployment
3738

38-
![layout](documentation_images/layout.png)
39-
40-
## Library
41-
The Library contains the collection of sources that can be used in MapMap. The supported sources are:
42-
43-
- media files such as:
44-
- video (see preferred video formats below)
45-
- still images (PNG, JPEG, etc)
46-
- animated GIFs
47-
- color paints/masks
48-
- webcams (currently on Linux version only)
49-
- ... and more to come in future versions
50-
51-
### Media Sources
52-
53-
Importing new media can be done in multiple ways:
54-
55-
- Clicking on File > Import media file...
56-
- Hitting CTRL+I
57-
- Clicking the icon in the toolbar
58-
- Drag and drop media directly into library window
59-
60-
Preferred Video Formats:
61-
62-
- Containers: .mov, .avi, .mp4, .ogg, .ogv
63-
- Video codec formats: Motion-JPEG / Photo-JPEG, MPEG4, Apple Pro Res 422
64-
65-
![import_media_file](documentation_images/import_media_file.png)
66-
67-
A introductory media / tutorial startup file can be found here: (INSERT LINK TO NEW MEDIA ? TUTORIAL ZIP FILE)
68-
69-
### Color Sources
70-
71-
Adding color paints to the library can be done by choosing File > Add color paint or by clicking on the icon in the toolbar.
72-
73-
![add_paint_color](documentation_images/add_color_paint.png)
74-
75-
Once clicked on the following menu will appear once a color has been selected click “Ok” to add the color to the library.
76-
77-
![color_selection](documentation_images/color_selection.png)
78-
79-
Media sources can be deleted by simply selecting it in the Library list, and then choosing the Edit > Delete menu item or by control clicking on a media source and choosing “delete source”. Since all the layers that use that source will also be deleted, a dialog will ask you for confirmation.
80-
81-
![delete_sourse](documentation_images/delete_source.png)
82-
83-
## Layers
84-
To the right of the library tab is the layers tab. Layers are media sources that are displayed in the output editor. Layers are created when a source from the library is selected and turned into a 1. quad, 2. triangle or 3. ellipse. This tab allows users to show/hide, lock, duplicate, and delete layers.
85-
86-
![shape_icons](documentation_images/shape_icons.png)
87-
88-
Layers can be deleted by selecting it in the layer list, and then choosing the "Edit > Delete" menu item.
89-
90-
![delete_layer](documentation_images/delete_layer.png)
91-
92-
Layers can be rearranged by dragging them on top of or below each other. Doing this also controls the layer arrangement in the output editor. Layers add vertices to the source which allows the source to be edited in a variety of ways.
93-
Next to each layer name, there are five icons:
94-
1. Hide Icon: This hides or shows the layer.
95-
2. Isolate Icon: This isolates the layer selected.
96-
3. Lock Icon: This locks or unlocks the layer so it can’t be modified.
97-
4. Duplicate Layer Icon: This duplicates a layer with all it’s settings .
98-
5. Delete Icon: This deletes the selected layer.
99-
100-
![layer_options](documentation_images/layer_options.png)
101-
102-
## Inspector
103-
Below the Library and Layers tab is the Inspector menu. This menu changes according to what is selected in the Library or Layers tab. Through the Inspector menu, users can modify the selected source in a variety of ways.
104-
Options for the Layer Inspector menu:
105-
1. Layer opacity can be changed on a 0 to 100% scale.
106-
2. Video sources can be changed to any source in the library via the source drop down menu.
107-
3. For Mesh Layers, there is an additional option titled “Subdivisions”. This option is very powerful as it allows the user to add additional subdivisions to the original square shape. These shapes can then be modified to create complex mappings onto a variety of screen shapes / geometries.
108-
4. X and y vertices for each point of the input shape can be modified.
109-
5. X and y vertices for each point of the output shape can be modified.
110-
111-
![inspector_window_options](documentation_images/inspector_window_options.png)
112-
113-
Options for the Library Inspector menu:
114-
1. Source opacity can be changed on a 0 to 100% scale.
115-
2. Source location can be modified by clicking on the … button so that a source can be swapped for another or relocated on the users hard drive.
116-
3. Source speed can be changed on a 0 to 100% scale.
117-
4. Source audio volume can be changed on a 0 to 100% scale.
118-
119-
![inspector_window](documentation_images/inspector_window.png)
120-
121-
## Shapes
122-
Currently supported shapes are: Quads/Mesh, Triangle and Ellipse. When Meshes have a dimension of two by two (2x2) vertices, they are called Quads. When they have more than 2x2 vertices, they are called A Mesh. A Mesh is a grid of vertices that allow more flexible mapping for complex output shapes.
123-
124-
To create a new shape, choose a source in the library and click on Quad/Mesh, Triangle or Elipse icon. A new shape will immediately be displayed in the Output Editor, where the size and shape of it can be manipulated by clicking and dragging it’s vertices. You can also click on a vertices and use the arrow keys to make micro adjustments to its position. You can also use the number boxes in the inspector window to move the vertices manually. To turn a Quad into a Mesh, change its dimension changing its width, height, number boxes.
125-
126-
![verted_editor](documentation_images/vertex_editing.png)
127-
128-
Shapes can also be transformed via a set of transform controls. Click on a vertices and then use the following keyboard shortcuts to activate the controls.
129-
130-
M = Move
131-
132-
![move_tool](documentation_images/move_tool.png)
133-
134-
R = Rotate
135-
136-
![rotate_tool](documentation_images/rotate_tool.png)
137-
138-
S = Scale
139-
140-
![scale_tool](documentation_images/scale_tool.png)
141-
142-
## Full Screen Mode
143-
Before projection mapping onto a surface check the system preferences on your machine to make sure your computer is not set on mirroring, but instead is set so that your projector is an external / additional monitor. Then use the Toggle Full Screen icon at the top of the MapMap Menu to send the output editor content to your projector or external monitor.
144-
145-
![fullscreen_from_menu](documentation_images/fullscreen_from_menu.png)
146-
147-
Special note for Apple Users: In your System Preferences > Mission Control. Make sure that “Displays have separate Spaces” is clicked or you will have control issues when you go to full screen.
148-
149-
![mission_control](documentation_images/mac_mission_control.png)
150-
151-
## Display Controls
152-
Display Controls give the user the ability to select and move vertices both in the input and output editor menus. To hide these controls click on the top menu "View” and then click on “Display controls". Click on it again to re-enable Display Controls.
153-
154-
![toggle_display_control](documentation_images/toggle_display_controls.png)
155-
156-
## Save the project to a file
157-
To save the current project, choose "File > Save as..." and then choose a file name. The extension file is ".mmp", but the file format is simply XML, a very common one.
158-
159-
![file_save_as](documentation_images/save_as.png)
160-
161-
## Load a project from a file
162-
To load a project from a file, choose "File > Open...".
163-
164-
![file_open_document](documentation_images/open_document.png)
165-
166-
## External Control using OpenSoundControl (OSC)
167-
168-
IMPORTANT: This feature is currently not supported on macOS.
169-
170-
MapMap supports the [OpenSoundControl](http://opensoundcontrol.org/introduction-osc) communication protocol. Currently supported actions allow full control of existing sources and layers, such as changing a source file, adjusting opacity and visibility, changing volume, etc.
171-
172-
The default OSC port can be changed from the Preferences menu.
173-
174-
MapMap provides a flexible way to control groups of sources and layers using [regular expressions](https://en.wikipedia.org/wiki/Regular_expression). For example the following OSC message will change the opacity of all sources whose name starts with "movie-" to 50%:
175-
176-
```/mapmap/paint/opacity ,sf "movie-*" 0.5```
177-
178-
[Read the MapMap OSC reference](https://github.com/mapmapteam/mapmap/wiki/OSC)
179-
180-
# Support or Contact
181-
182-
To report a problem or suggest an enhancement please [open a new issue on GitHub](https://github.com/mapmapteam/mapmap/issues/new)
183-
184-
Other ways to reach us:
185-
- [MapMap mailing list](https://listes.koumbit.net/cgi-bin/mailman/listinfo/mapmap-list-mapmap.info)
186-
- The #mapmap IRC channel on Freenode
187-
- Write to us at info at mapmap dot info
188-
189-
# Authors
190-
- Sofian Audry: lead developer, user interface designer, project manager.
191-
- Dame Diongue: developer.
192-
- Alexandre Quessy: release manager, developer, technical writer, project manager.
193-
- Mike Latona: user interface designer.
194-
- Vasilis Liaskovitis: developer.
195-
196-
# Partners
197-
MapMap is made possible thanks to the generous support of the following organizations:
198-
- [Organisation Internationale de la Francophonie](https://www.francophonie.org)
199-
- [Perte de Signal](http://perte-de-signal.org)
200-
- [Ker Thiossane](http://www.ker-thiossane.org)
201-
- [Conseil des Arts et des Lettres du Québec](https://www.calq.gouv.qc.ca)
202-
- [Millumin](http://www.millumin.com)
203-
- Alton ’38 and Adelaide Hamm Campus Activity Fund
204-
205-
# Troubleshooting
206-
207-
## macOS
208-
To display more information about the errors that might occur, launch MapMap from the command line. To do so, open the Terminal application, that is located in /Applications/Utilities from Finder then type “ /Applications/mapmap.app/Contents/MacOS/MapMap”, and hit the Return key.
39+
Pushes to `master` automatically deploy via GitHub Actions. Make sure GitHub Pages is configured to use "GitHub Actions" as the source in the repository settings.

_config.yml

Lines changed: 0 additions & 1 deletion
This file was deleted.

astro.config.mjs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { defineConfig } from 'astro/config';
2+
import tailwind from '@astrojs/tailwind';
3+
4+
export default defineConfig({
5+
site: 'https://mapmapteam.github.io',
6+
integrations: [tailwind()],
7+
i18n: {
8+
defaultLocale: 'en',
9+
locales: ['en', 'fr'],
10+
routing: {
11+
prefixDefaultLocale: true,
12+
},
13+
},
14+
});

0 commit comments

Comments
 (0)