Local MP4 videos and HTTPS web pages can now be included in slides. Section dividers use the new default design, and previous/next controls stay in fixed positions when slides change at the same window size. No video files or video demonstration slides are included in this kit.
New commands and sharing instructions · Version 1.5 changes · Version 1.5 validation
Earlier validation records are retained as history: 1.4 publication supplement · 1.4 validation · Development and review scope.
Read the precautions before use, development and review scope, and current licensing plans. Back up important documents and first try the samples or copies of your source files.
You do not need another materials ZIP or an initial folder selection. SCVeamer creates an editable copy of the sample on first launch, then resumes the last valid project used in this English edition. Switching between bundled projects does not overwrite your edits with the original sample.
Saving TeX alone does not update an existing HTML file. Wait for a successful build, then open or reload the generated presentation.
1. First-time setup
1Extract the kit
Right-click the ZIP and choose Extract All. Keep scveamer.py, engine/, resources/, bundled/ and the documentation in their supplied relative locations. Run the kit from the extracted folder, not from inside the ZIP viewer.
If you already use another edition, extract this one into a separate folder. See Updates and migration for continuing an existing project.
2Check Python and TeX
| Requirement | What it does |
|---|---|
| Python 3.11 or later, with Tkinter | Runs the editor and conversion program. A standard CPython installation with Tcl/Tk is suitable. |
| A TeX installation with LuaLaTeX and Beamer | Needed when building a PDF from TeX source; conversion from an existing PDF does not require TeX. The English projects use Latin Modern fonts and fontspec; Japanese font packages are not required for them. |
| pypdf 6.10.0; pypdfium2 5.14.0/PDFium; Pillow 12.3.0 | Read PDF structure and links, render pages, encode PNG slides and copy vector pages to the handout. Install these packages using the editor's first-time setup button. |
Python and TeX themselves are not included. If needed, see the official Python downloads for Windows and TeX Live for Windows. In a Python installer that offers components, include pip and Tcl/Tk/IDLE. An existing compatible TeX installation can be reused.
To check Tkinter, run py -m tkinter. A small demonstration window should open. See Python's Tkinter documentation.
3Start the editor
On Windows, double-click START_WINDOWS.cmd. Alternatively, open a terminal in the folder containing scveamer.py and run:
py scveamer.py
One way to open PowerShell there is to enter powershell in File Explorer's address bar and press Enter. If your environment uses python rather than py, run python scveamer.py. A file association may also allow double-clicking scveamer.py; the terminal is useful if you need to read a startup error.
4Check the automatically opened project
Sample slides is selected on first launch. SCVeamer creates a working copy and displays its location in Working folder. Choose Check environment.
The project selector offers Sample slides, Template v2 and New talk starter. Each has its own working copy, and selecting it again resumes your edits.
| Edition or situation | Usual working folder |
|---|---|
| Python edition | workspace/ inside the kit: workspace/day1/, workspace/template-v2/ or workspace/starter/. |
| Executable edition | workspace/ beside the executable. |
| The above location is not writable | SCVeamer/workspace/version-1.5-en/ under your home directory. The actual path appears in the editor and log. |
Use Open folder to see the working files. Edit this copy; you do not need to edit the originals in bundled/.
5Install the PDF libraries
Choose First-time setup (install libraries) if the PDF libraries are not ready. This creates a kit-specific .venv and downloads pypdf 6.10.0, pypdfium2 5.14.0 and Pillow 12.3.0. This step needs an internet connection. It does not install Python or TeX.
The editor restarts in the prepared environment when setup finishes. Next time, use the same py scveamer.py command. The local environment is selected automatically. SETUP_WINDOWS.cmd or py scveamer.py --setup performs the same preparation.
There is no Activate.ps1 step: SCVeamer calls its environment's Python directly. When moving the kit to another computer, create the environment there instead of copying .venv. See Python's venv documentation.
6Locate TeX only if automatic detection fails
In TeX executable folder, choose the directory containing lualatex.exe. For example, a TeX Live installation might use:
C:\texlive\2026\bin\windows
Use your actual year, drive and installation path. Select the folder containing the executable, not the executable itself or your lecture folder. Then choose Check environment again.
7Try a build
Choose Build HTML from TeX. After the log reports success, choose Open HTML. Once Python dependencies, TeX packages and fonts are installed, ordinary builds and viewing of typeset slides and included interactive figures can run offline. Viewing an embedded website needs internet access.
Font names database not found, generating new one.
This can take several minutes; please be patient.
These lines announce creation of the font database; they are not themselves errors. Allow the process to finish. Later runs reuse the database. In TeXworks, the red × shown during typesetting is the stop button.
Sources: luaotfload database implementation and TeXworks run/stop controls.
2. Try your first edit
Use the sample that opened automatically. Check that Working folder points to its editable copy, normally workspace/day1/.
- Choose Edit source and open
talk.tex, or open it directly in your usual TeX editor. - Find the subtitle and change it, for example:
\subtitle{Complex Analysis in Several Variables — editing practice} - Save with Ctrl+S.
- Return to SCVeamer and choose Build HTML from TeX.
- After a successful build, choose Open HTML and check the title slide. Reload an already open tab.
For a short source, select New talk starter. Its six blue slides demonstrate ordinary Beamer pages, theorem environments, \pause and one fixed interactive example. Selecting it again resumes the same working copy.
To begin a separate talk with a fresh starter, choose Create a new project, then choose a new folder name and location. Existing nonempty folders are not replaced.
The starter includes a ready-made HTML presentation and PDFs, THEMES.html for color previews, and EXAMPLES.html for all fixed examples. Open them before editing if you want to see what is available.
Edit ordinary mathematical content in TeX. Direct edits to index.html will be replaced by the next build.
Updates and migration
Extract a new edition into a separate folder. Keep previous working projects in their existing locations or make a complete backup before moving them.
- Extract the new ZIP and start its editor.
- On first launch, the English sample is copied into its new working folder. To continue an older project, choose Open my project folder and select the directory directly containing that project's
talk.tex. - Check the actual Working folder, then run Check environment and first-time setup if required.
- Build and inspect the output. The old HTML does not update automatically.
This English edition uses separate settings and the fallback workspace name version-1.5-en. It does not automatically open a Japanese edition's previous working project. You can open an older source explicitly. Source text is not translated automatically; change its language yourself, including fixed-example language options if needed.
To add scheduled end times to a source older than version 1.2, first copy the project folder, then copy the new starter/theme/holotalk-games.sty into that copy's theme/ directory. Preserve any customized style and add the commands described in section 4. This English style defaults to lang=en; explicitly request lang=ja for a Japanese visualization.
Version 1.5 retains the existing deck format and pypdf/pypdfium2 PDF backend. The embedded scveamer_version value is 1.5, and renderer identifies pypdfium2 and PNG output. Video and website slides need the 1.5 player. English defaults, example IDs and mathematical behavior are preserved. holotalk_editor.py remains a compatibility entry point; normally use scveamer.py. To use the new commands in an older source, follow the theme-update instructions.
3. Writing and editing TeX
| What to change | Where to edit |
|---|---|
| Title, subtitle, author and colors | The preamble of talk.tex. When renaming a complete lecture, also check PDF metadata in \hypersetup and any title in lecture-plan.json. |
| Mathematical text and overlays | The part of talk.tex after \begin{document}. A frame is one logical slide. |
| Images and diagrams | Put image files in assets/ and use \includegraphics. The sample also contains editable TikZ diagrams in talk.tex. |
| Start time and slide durations | \scvstarttime in the preamble and \scvminutes in each frame. |
| Short titles, prompts and notes | lecture-plan.json. The bundled sample includes short titles and observation prompts, with no speaker notes. |
| Sample's static versions of interactive slides | The SCVprint@... definitions near the top of talk.tex, together with the PDFs in assets/. |
Choose a color theme
After loading the theme in the preamble, write one of blue, red or yellow:
\usepackage{theme/holomorphonautica}
\holocolors{blue}
Blue is the original Holomorphonautica palette. Red uses the website's magenta accent. Yellow uses the original Beamer/Metropolis-inspired yellow-orange palette. THEMES.html shows examples. Rebuild after a change. The visualization colors retain their mathematical meaning and are not recolored by this setting.
Ordinary slides and overlays
Write an ordinary Beamer frame. Text after \pause appears on the next advance in HTML too.
\begin{frame}{What should we observe?}
\begin{itemize}
\item Specify the object by a formula.
\pause
\item Move the slice and compare the views.
\pause
\item Relate the observation to a criterion.
\end{itemize}
\end{frame}
Definitions, theorems and proofs
Available environments include definition, theorem, lemma, proposition, corollary, example, remark, question and proof.
\begin{frame}{A simple example}
\begin{example}
The function $u(z)=|z|^2$ is subharmonic on $\mathbb C$.
\end{example}
\pause
\begin{proof}
Write $z=x+iy$. Then $u_{xx}+u_{yy}=4>0$.
\end{proof}
\end{frame}
The sample lecture follows its source notes and uses \Delta u=-(u_{xx}+u_{yy}); subharmonicity then means \Delta u\leq0. The independent starter and template state the positive-Laplacian convention explicitly. Keep the sign convention consistent when combining sources.
Insert a fixed interactive example
Write one command at the place where you want the interactive slide. You do not need to write JavaScript. Choose a registered viewer type and example ID from the complete table at the end.
\exploreframe{sh}{std-b03}{Explore a harmonic saddle}
The command creates a whole slide. Place it between ordinary frames, and do not enclose it in another frame:
\begin{frame}{Before the observation}
What should we expect from the circular average?
\end{frame}
\exploreframe{sh}{std-b03}{Explore a harmonic saddle}
\begin{frame}{After the observation}
The graph is saddle-shaped, but the function is harmonic.
\end{frame}
| Argument | Meaning |
|---|---|
{sh} | The viewer: sh for Subharmonic?, psh for Plurisubharmonic?, or ryokuinzu for domains and fibers. |
{std-b03} | The registered example ID. It selects the function or domain; it is not a place to type an arbitrary formula. |
{Explore a harmonic saddle} | Your slide title. Change it freely. |
IDs are case-sensitive. For example, N01 and n01 are different. Keep the viewer type and ID together. Every row in the final table has a Copy TeX button; EXAMPLES.html in the starter and template provides another example picker.
Eight ready-to-use examples
These are the examples used in the sample lecture. Copy a line and change the slide title if desired.
% Re(z^2)=x^2-y^2: a harmonic saddle.
\exploreframe{sh}{std-b03}{Explore a saddle-shaped graph}
% -|z|^2: a cap that is not subharmonic.
\exploreframe{sh}{std-b02}{A cap and its circular averages}
% max(0,Re z): subharmonic with a crease.
\exploreframe{sh}{std-i02}{A crease can be subharmonic}
% |z|^2+|w|^2: a strictly plurisubharmonic example.
\exploreframe{psh}{N01}{Restrictions to complex lines}
% |z|^2+|w|^2-4Re(z w-bar): coordinate slices are insufficient.
\exploreframe{psh}{A03}{What coordinate slices miss}
% The unit ball in C^2.
\exploreframe{ryokuinzu}{lecture-ball}{Fibers of the unit ball}
% The unit bidisc in C^2.
\exploreframe{ryokuinzu}{lecture-polydisc}{Fibers of the bidisc}
% A Hartogs figure.
\exploreframe{ryokuinzu}{n18}{Slices of a Hartogs figure}
Hide the formula, or specify the language
By default, the formula is visible from the start, while the answer and explanation are revealed by a button. To hide the formula until the answer is shown, add formula=hide:
\exploreframe[formula=hide,lang=en]{sh}{std-b02}
{Is this function subharmonic?}
The English edition's styles default to lang=en. An explicit language is useful when sharing source across editions. The existing Japanese UI remains available with lang=ja.
Provide a static PDF counterpart
An interactive HTML figure cannot move in a PDF. Use print={...} to typeset its static image and explanation:
\exploreframe[lang=en,print={%
\includegraphics[width=.55\linewidth]{assets/my-figure.pdf}
\par A short explanation of this same example.
}]{ryokuinzu}{lecture-ball}{Fibers of the unit ball}
The sample lecture defines its own shorter command:
\observeframe[3]{ryokuinzu}{lecture-ball}
{The unit ball: shrinking disc fibers}{fibers-ball}
The optional [3] gives the duration in minutes. The first three required arguments select the viewer, ID and title. The final fibers-ball selects the sample's corresponding SCVprint@fibers-ball definition in talk.tex, which uses assets/fibers-ball.pdf. This helper is specific to the sample; use \exploreframe in a new source unless you also copy the helper definitions.
Update the PDF text in print or SCVprint@..., the referenced image, and any notes so that they match the chosen interactive example.
Save and rebuild
- Save the TeX source.
- Check that the editor's Working folder is the project you edited.
- Choose Build HTML from TeX.
- Wait for success, then open or reload
index.html.
If you use lecture-plan.json, count each interactive page as one logical slide. When adding, deleting or reordering slides, update its slide numbers. If only the example changes, still update related prompts and notes. You can temporarily disable supplementary data while aligning the plan; TeX schedule settings continue to apply independently.
4. Planned end times and speaker notes
Write a start time and durations in TeX
The bottom-right Planned end display can show when the current slide is scheduled to finish without pressing a button. Set the start time in the preamble, after loading the theme:
\scvstarttime{14:55}
Set a duration at the start of every ordinary frame:
\begin{frame}{Subharmonic functions}
\scvminutes{3}
Write the definition here.
\pause
Then show an example.
\end{frame}
For a fixed example, use the minutes option:
\exploreframe[minutes=3,formula=show,lang=en]
{sh}{std-b02}{A cap and its circular averages}
This command creates a whole frame. If you already use print={...}, add minutes=3 to the same option list.
| Setting or action | Meaning |
|---|---|
| Start 14:55, first slide 2 minutes, second slide 3 minutes | The first slide shows “Planned end 14:57”; the second shows “Planned end 15:00”. |
| Overlays, going back, or jumping through contents | The planned time belongs to the logical slide. It stays unchanged through overlays and interaction, and returns to that slide's time when you go back. |
No start time, or \scvstarttime{} | The clock is hidden, even if durations remain in the source. |
| A start time but a missing slide duration | Conversion reports the missing slide rather than displaying an incorrect schedule. Set a duration for every slide. |
duration_minutes in the plan | The JSON duration remains supported. A duration specified in TeX takes priority. |
Use 24-hour HH:MM for the start time and a nonnegative number of minutes, such as 3 or 2.5, for a duration. This is a planned schedule, not an automatic elapsed-time or countdown timer. If the start time changes, edit it and rebuild.
Its 47 slides total 135 minutes, starting at 14:55 and ending at 17:10. The original 46 lecture slides and their timing are retained; the appended website slide is assigned zero minutes. It includes no speaker notes or Notes button. Its repeated lecture/system footer text is hidden, while planned end times remain visible.
Use notes in another project
Write supplementary metadata in lecture-plan.json and enable Use supplementary data (titles, prompts and speaker notes) in the editor.
| Field | Meaning |
|---|---|
slide | Logical slide number, starting from 1. Do not count each \pause overlay separately. |
title | A short title for the contents and presentation controls. The PDF title is used when omitted. |
duration_minutes | Planned duration; optional if specified in TeX. |
notes | Speaker notes. Use \n for a newline inside a JSON string. Omit this field when no notes are needed. |
prompt / observation | Prompt and observation text used on the Ryokuinzu screen. The example ID is selected in TeX. |
{
"title": "My lecture",
"slides": [
{"slide": 1, "title": "Introduction", "duration_minutes": 2,
"notes": "Introduce the main question."},
{"slide": 2, "title": "Observe", "duration_minutes": 3,
"notes": "Ask the audience to compare the two slices."}
]
}
A plan used by the builder must cover all logical slides, with matching numbers and content. Move the associated entries when changing slide order. A \scvminutes command moves with its frame, so that duration does not require a separate slide-number edit.
In presentation.json, set "speaker_notes": false to omit note text from the generated HTML and disable guide generation for that project. Planned times are independent. Omit the setting or set it to true when notes are wanted.
With notes enabled and a plan applied, SCVeamer generates CURRENT_TEACHING_GUIDE.html. It does not update an older TEACHING_GUIDE.html. If you disable notes later, any older guide left in the folder should not be treated as current.
Notes opened with N or the Notes button are not private presenter notes. They are included in the distributed HTML. For a private reference, open or print the speaker guide on a separate screen or device.
Hide footer text for an individual project
Use \renewcommand{\holofooter}{} in the preamble to clear the TeX footer text. Retain page numbers or the supplied slide metadata so overlays can be grouped correctly. In version 1.5 the HTML toolbar has no permanent slide-title or system-name area. The show_brand option remains readable for compatibility but no longer affects its display. Previous/next controls and the page counter have fixed widths. The sample already clears its TeX footer text.
5. Editor buttons and outputs
| Control | Action |
|---|---|
| Project selector | Creates or resumes an editable copy of a bundled project. |
| Open my project folder | Opens an existing project outside the built-in selector. |
| Create a new project | Copies a fresh six-slide starter into a new empty folder. |
| Open folder | Shows the actual working folder in the system file manager. |
| Check environment | Checks the source, Python PDF library, TeX engine and required files. |
| First-time setup (install libraries) | Creates the kit's Python environment and installs the pinned PDF libraries. |
| Edit source | Opens the selected source file in its associated editor. You may also open it directly in TeXworks or your usual editor. |
| Build HTML from TeX | Compiles the TeX PDF, then creates HTML and any configured handout or speaker guide. |
| Build HTML from existing PDF | Converts the current PDF without compiling TeX. |
| Open HTML / Open PDF | Opens the generated file using the associated browser or PDF viewer. |
| Open guide | Opens the generated speaker guide when enabled. The bundled sample has no speaker notes. |
| Manual / Credits / Save log | Opens this manual, shows project credits, or saves the editor's operation log. |
The standard outputs are index.html for presenting and talk.pdf with all Beamer display states. Projects configured for handouts, including the sample and starter, also produce handout.pdf, using the final state of each slide. Template v2 does not enable a separate handout by default. A configured, enabled plan with speaker notes also produces CURRENT_TEACHING_GUIDE.html. Output filenames can be customized in presentation.json.
A failed generation preserves the previous completed output files. If you still see old content, check whether the latest build actually succeeded.
6. Convert a PDF built in your usual editor
In TeXworks, save the source as UTF-8 and typeset with LuaLaTeX. The supplied first line, % !TeX program = lualatex, selects this engine where supported. If it is not picked up, choose LuaLaTeX explicitly in the typesetting dropdown. The supplied fontspec sources do not compile with the ordinary LaTeX or pdfLaTeX choice.
- Compile the working copy's
talk.texin your usual TeX editor, updatingtalk.pdfin the same folder. - Check that SCVeamer's Working folder is that project.
- Choose Build HTML from existing PDF.
- After success, inspect the HTML and any configured handout.
This action does not compile TeX. An old PDF produces old content. Interactive pages are recognized from the link markers written by \exploreframe or \gameframe; a figure in an arbitrary PDF does not automatically become interactive. If replacing a PDF with a different lecture, update or disable the old plan so that notes are not attached to the wrong slides.
PNG resolution
The converter uses a default image width of 1920 pixels unless the project's presentation.json or the command line specifies another width. For example, py scveamer.py --pdf-only --project "C:\work\my-lecture" --image-width 2560 uses 2560-pixel-wide images. A command-line value overrides the project setting. PNG images have a fixed resolution; large enlargement may soften fine text. The input PDF is unchanged, and the handout copies PDF pages without rasterizing them.
7. Optional: build a Windows executable
The kit includes an updated SCVeamer.spec recipe for PyInstaller. This kit is supplied as Python source. Executable build/run validation is not claimed for this release; see the current validation record. The earlier reported Windows 11 use for version 1.4 is described in the publication supplement; it does not record a systematic test of individual GUI functions. The following commands are a starting point for later packaging work; first verify the Python edition, then build on Windows for Windows and validate that exact distribution.
Intended contents of a future executable build
Python, the editor, pypdf, pypdfium2/PDFium, Pillow, the conversion engine, visualizations, player and three bundled projects. Collect the license files from the exact platform-specific packages included in that build.
Still separate
TeX is still needed to compile sources. Editable projects are saved in working copies beside the application or under the user's home directory.
After first-time setup, run these commands in the kit folder on Windows:
.\.venv\Scripts\python.exe -m pip install -r requirements-build.txt
.\.venv\Scripts\python.exe -m PyInstaller --clean SCVeamer.spec
Run SCVeamer.exe inside dist\SCVeamer\. The supplied specification uses onedir: keep and distribute the entire directory, not just the executable. A desktop shortcut is useful without moving the executable. The first launch creates the bundled project's working copy. The executable contains its Python libraries, so its Python first-time setup is unnecessary.
Rebuild the executable after changing Python source files. PyInstaller also supports onefile packaging, but these instructions describe the supplied onedir setup. See how PyInstaller works and its usage documentation.
Executable packaging does not guarantee a particular antivirus result. If a download is blocked, identify the reported detection name and the affected file before investigating.
Command-line use
Replace the example folder with your own project. Quote paths that contain spaces:
py scveamer.py --check --project "C:\work\my-lecture"
py scveamer.py --build --project "C:\work\my-lecture"
py scveamer.py --pdf-only --project "C:\work\my-lecture"
py scveamer.py --setup
Use --builtin day1, --builtin template-v2 or --builtin starter to select a bundled project. --new-project "C:\work\new-talk" creates a starter. Add --tex-bin "C:\texlive\2026\bin\windows" when needed, or --engine lualatex to choose the engine explicitly. --no-plan ignores supplementary JSON data while retaining TeX schedule settings.
BUILD.cmd and PDF_TO_HTML.cmd call the same program. A double-click uses the last valid project and saved TeX settings; an explicit option overrides the saved value. For example: BUILD.cmd --project "C:\work\my-lecture".
8. Troubleshooting
| Problem | What to check |
|---|---|
| No window after double-clicking | Run py scveamer.py in a terminal to read the error. Check the Python installation or launcher command if py is unavailable. |
Missing tkinter | Install Python with Tcl/Tk/IDLE. Test with py -m tkinter, and perform setup using that Python. |
| Missing pypdf, pypdfium2 or Pillow | Run First-time setup (install libraries), then use the restarted editor. Check the log if another Python environment was launched. |
| LuaLaTeX not found | Check that TeX is installed and select the directory containing lualatex.exe. |
A Windows path causes Undefined control sequence before the source loads | The path-passing fix from release 1.0.1 is included. Extract the current kit separately and rebuild the same source. |
| The first font-database build seems to stall | The font-database messages are informational. Allow several minutes. If a later error is reported, inspect that error. TeXworks' red × is its stop button. |
| A missing font or TeX package | Read the first error in the log. The English projects use LuaLaTeX, Beamer, fontspec and Latin Modern; the full sample also uses TikZ and standard mathematical packages. Try compiling the same talk.tex in your usual editor. |
| Cannot replace or save the PDF | Close the output in a viewer that locks it, then rebuild. Check that the working folder is writable. |
| Saved edits are missing from HTML | Check the working folder, the saved file, the latest build's success, the HTML file you opened and the browser reload. Avoid editing the untouched original under bundled/. |
| A previous project is missing | Find its old workspace/ or custom project folder, then select it with Open my project folder. The English edition keeps its own last-project settings. |
| Unknown example ID | Check the catalog, including viewer type and letter case. IDs must be selected as a viewer/ID pair. |
| No planned end time | Use the current theme, set a start time and durations for every slide, save and rebuild. |
| The surface remains too transparent in the circle test | An older HTML contains an older embedded UI. Regenerate it using this kit and open the new file. |
| Titles or notes appear on the wrong slide | Align lecture-plan.json with the current order, even if the number of slides is unchanged. Disable supplementary data temporarily if needed. |
| Japanese content in an older source | This edition localizes its bundled English sources. It does not automatically translate your own TeX, notes or print text. Set lang=en for fixed examples in older styles. |
| Moving to another computer | Prepare Python and TeX there and run setup again; do not reuse .venv. For an executable distribution, copy the entire onedir folder. |
Read and preserve the error log
For a failed TeX build, read the TeX error summary and the editor's log. The detailed log is .build/latest.log in the working folder. It is overwritten by another build, so save a copy before retrying if you need to report the problem. Include the action you performed.
9. Presenting and distributing materials
| Purpose | Files to use or share |
|---|---|
| Show an interactive lecture | The bundled examples need only index.html. If you add a video, also include its adjacent video folder, such as index_media/. Website viewing needs internet access. Viewers need a browser, with no Python, TeX or local server. |
| Static reading or printing | handout.pdf if enabled. It contains the final state of each logical slide. Template v2 defaults to talk.pdf only. |
| Read every overlay as PDF pages | talk.pdf, including the display states generated by \pause. |
| Let someone edit your lecture | The complete edited project folder from Working folder, together with the editing kit. The recipient can choose Open my project folder. Exclude .venv and temporary build files. |
Use the arrow keys, Space or toolbar buttons to advance. Press F2 after interacting with a visualization to return to slide controls. Use the player's Fullscreen button or the browser's F11 shortcut. The HTML can also be placed on a web server and linked normally.
This manual describes SCVeamer 1.5, English edition. See the current validation record for checks and untested items. The version 1.4 publication supplement records the earlier Windows 11 report without identifying which language edition was tried. Earlier records are retained as history and do not establish validation of 1.5.
Research project and joint development
SCVeamer 1.5 — English edition is a Beamer-style HTML slide editor for visualizing several complex variables. It was created as part of Project Holomorphonautica, a project on visualization and geometric intuition in complex analytic geometry and several complex variables.
| Research project | Developing geometric intuition in several complex variables through AI-assisted visualization |
|---|---|
| Programme | MEXT — Supporting Pioneering Research through AI for 1,000 Discovery challenges (SPReAD) |
| Funding period | June 2026–January 2027 |
| Principal investigator | Takayuki Koike, Institute of Pure and Applied Sciences, University of Tsukuba |
| Project nickname | Project Holomorphonautica |
Joint development of the SCVeamer system
Jointly developed by Takayuki Koike with:
- Kyoka Marui — Tohoku University
- Masakazu Takakura — Tokyo Metropolitan University
- Ryo Uchimoto — Kyushu University
This credit covers the whole system, including the three interactive visualizations, editing interface, conversion engine and slide player.
Shared conception of the games
Discussions among Kyoka Marui, Masakazu Takakura, Ryo Uchimoto and Takayuki Koike about what to observe and understand through 3D VR visualizations of complex analytic geometry led to games for practicing visual observation. Subharmonic?, Plurisubharmonic? and Ryokuinzu — Pseudoconvex? arose from that shared conception. Their existing in-game credits are retained.
Implementation assistance
ChatGPT assisted with coding and documentation.
Software used
| Software | Role and official information |
|---|---|
| Python and Tkinter | Editing interface and conversion workflow. Python / Tkinter |
| pypdf 6.10.0 | PDF structure, link annotations and vector handout generation. Documentation |
| pypdfium2 5.14.0 / PDFium | Rendering PDF pages and extracting visible text. Documentation |
| Pillow 12.3.0 | Encoding the rendered pages as PNG images. Documentation |
| TeX Live, Beamer, LuaLaTeX and fontspec | Mathematical typesetting in the user's TeX environment. TeX Live / Beamer / fontspec. LuaTeX-ja is used by the separate Japanese edition. |
| PyInstaller | Optional packaging as a Windows executable. Official website |
This source ZIP does not contain Python, pypdf, pypdfium2/PDFium, Pillow, PyInstaller or TeX itself. Pinned dependencies are installed separately; their collected notices are in the kit root's THIRD_PARTY_NOTICES.txt and licenses/ directory. Their authorship and license terms are those of the respective official distributions. Existing credits in the interactive visualizations are preserved.
Colors
blue uses a white background, blue headings and green accents. red refers to the heading color #9F166A on tkoike.com. yellow draws on the original Beamer/Metropolis palette: yellow-orange #EB811B, dark blue-green #23373B and background #FAFAFA.
10. Complete example catalog — all 194 IDs
Choose a registered example by its viewer type and case-sensitive ID. These commands select existing examples; entering an arbitrary formula does not register a new function.
Each Copy TeX button copies the command for one complete slide. Paste it between frames and replace the final slide title. See section 3 for the insertion pattern.
The table's formula and the surface show u; the verdict and explanation concern −log u. The ID selects this mode automatically, using the same \exploreframe{sh}{ID}{Title} command.
The definitions, verdicts and descriptions come from the kit's fixed-example catalogs. An overline denotes complex conjugation. For examples involving Green functions or Bergman kernels, read the description and the interactive answer for the definitions and numerical approximations. Difficulty levels are inherited from the games.
Separate search terms with spaces to require all of them. Printing includes all 194 examples regardless of the active filter.
No examples match. Try a shorter query or choose Clear search.
Subharmonic? — standard mode (78 examples)
These 78 examples test subharmonicity of the plotted function u itself on the unit disc. Viewer: sh.
| Example ID | Function or domain | What the example shows | Verdict |
|---|---|---|---|
std-b01Beginner |
u(z) = zz | The complex Hessian is nonnegative throughout the unit disc. | Subharmonicity of uYes |
std-b02Beginner |
u(z) = −zz | The complex Hessian is negative somewhere in the unit disc, so the function is not subharmonic. | Subharmonicity of uNo |
std-b03Intermediate |
u(z) = (z2 + z2)/2 | This function is harmonic: its complex Hessian vanishes identically, so it is also subharmonic. | Subharmonicity of uYes |
std-b04Intermediate |
u(z) = (z3 − z3)/(2i) | This function is harmonic: its complex Hessian vanishes identically, so it is also subharmonic. | Subharmonicity of uYes |
std-b05Beginner |
u(z) = (zz)2 | The complex Hessian is nonnegative throughout the unit disc. | Subharmonicity of uYes |
std-b06Beginner |
u(z) = zz − 2(zz)2 | u_{z z̄}=1−8|z|² is negative when |z|>1/√8. Look for the failure away from the origin. | Subharmonicity of uNo |
std-b07Beginner |
u(z) = 2(zz)2 − zz | u_{z z̄}=8|z|²−1 is negative close to the origin (|z|<1/√8). | Subharmonicity of uNo |
std-b08Beginner |
u(z) = zz + (z2 + z2)/2 | The complex Hessian is nonnegative throughout the unit disc. | Subharmonicity of uYes |
std-b09Beginner |
u(z) = zz − (z3 + z3)/2 | The complex Hessian is nonnegative throughout the unit disc. | Subharmonicity of uYes |
std-b10Intermediate |
u(z) = zz(1 + (z + z)/2) | u_{z z̄}=1+2 Re(z), which is negative in the part Re(z)<−1/2. | Subharmonicity of uNo |
std-b11Beginner |
u(z) = zz + (zz)3/2 | The complex Hessian is nonnegative throughout the unit disc. | Subharmonicity of uYes |
std-b12Beginner |
u(z) = −(z + z)/2 | This function is harmonic: its complex Hessian vanishes identically, so it is also subharmonic. | Subharmonicity of uYes |
std-b13Beginner |
u(z) = zz(1 − zz) | u_{z z̄}=1−4|z|² is negative for |z|>1/2. | Subharmonicity of uNo |
std-b14Beginner |
u(z) = log(1 + zz) | The complex Hessian is nonnegative throughout the unit disc. | Subharmonicity of uYes |
std-b15Beginner |
u(z) = −log(1 + zz) | The complex Hessian is negative somewhere in the unit disc, so the function is not subharmonic. | Subharmonicity of uNo |
std-b16Intermediate |
u(z) = (z3 + z3)/2 | This function is harmonic: its complex Hessian vanishes identically, so it is also subharmonic. | Subharmonicity of uYes |
std-b17Intermediate |
u(z) = zz · (z2 + z2)/2 | u_{z z̄}=3(Re(z)²−Im(z)²) is negative where |Im(z)|>|Re(z)|. | Subharmonicity of uNo |
std-i01Beginner |
u(z) = max{log|z|, −2} | The maximum of log|z| and a constant is subharmonic. Its positive Laplacian measure is supported on |z| = e⁻². | Subharmonicity of uYes |
std-i02Beginner |
u(z) = max{0, (z+z)/2} | The maximum of 0 and Re z is subharmonic; its positive Laplacian measure lies on Re z = 0. | Subharmonicity of uYes |
std-i03Beginner |
u(z) = min{0, (z+z)/2} | The minimum of two harmonic functions has a negative Laplacian measure along Re z = 0. | Subharmonicity of uNo |
std-i04Beginner |
u(z) = |(z+z)/2| | |Re z| is the maximum of two harmonic functions; the positive measure is concentrated on Re z = 0. | Subharmonicity of uYes |
std-i05Beginner |
u(z) = −|(z+z)/2| | −|Re z| has a negative Laplacian measure on its crease. | Subharmonicity of uNo |
std-i06Intermediate |
u(z) = max{0, (z2 + z2)/2} | The maximum of two harmonic functions is subharmonic; the crease lies on Re(z²)=0. | Subharmonicity of uYes |
std-i07Intermediate |
u(z) = max{zz, (z+z)/2} | Both |z|² and Re z are subharmonic; so is their maximum. | Subharmonicity of uYes |
std-i08Intermediate |
u(z) = min{zz, (z+z)/2} | Although the smooth pieces have nonnegative Hessian, a negative singular measure occurs along the switching curve. | Subharmonicity of uNo |
std-i09Beginner |
u(z) = |(z+z)/2| − 0.8zz | The crease carries a positive measure, but u_{z z̄}=−0.8 away from it. At a=1/2 and r=0.08 the circle misses the crease, and J_u(a,r)=−0.00512<0. | Subharmonicity of uNo |
std-i10Intermediate |
u(z) = max{0, (z3 + z3)/2} | The maximum of 0 and Re(z³) is subharmonic. | Subharmonicity of uYes |
std-i11Intermediate |
u(z) = −max{0, (z2 + z2)/2} | A negative Laplacian measure appears on the crease. | Subharmonicity of uNo |
std-i12Intermediate |
u(z) = max{zz, 1/4} | The maximum of |z|² and a constant is subharmonic; a positive singular measure lies on |z|=1/2. | Subharmonicity of uYes |
std-a01Advanced |
u(z) = Re ∑k=0∞ 0.55k(z/1.03)2k | This is the real part of a holomorphic lacunary series, hence harmonic. The circle |z|=1.03 is a natural boundary; the picture uses a finite partial sum. | Subharmonicity of uYes |
std-a02Advanced |
u(z) = Re ∑k=0∞ 0.55k(z/1.03)2k + 2.4zz | A harmonic function plus 2.4|z|² has a positive constant Hessian. | Subharmonicity of uYes |
std-a03Beginner |
u(z) = Re ∑k=0∞ 0.55k(z/1.03)2k − 2.4zz | Despite the complex appearance, its Hessian comes from −2.4|z|² and is negative. | Subharmonicity of uNo |
std-a04Beginner |
u(z) = gP(z), P(z)=z2−2 | g_P is the escape-rate Green function of P(z)=z²−2. It is subharmonic and its Laplacian measure is supported on the Julia set [−2,2]. The rendering is iterative and approximate. | Subharmonicity of uYes |
std-a05Beginner |
u(z) = −gP(z), P(z)=z2−2 | −g_P has a negative Laplacian measure on the Julia set and is not subharmonic. Its rendering uses iteration. | Subharmonicity of uNo |
std-a06Advanced |
u(z) = |Re(z/(1 − 0.75z))| | The absolute value of the real part of a holomorphic function is the maximum of two harmonic functions. | Subharmonicity of uYes |
std-a07Beginner |
u(z) = −|Re(z/(1 − 0.75z))| | Re(z/(1−0.75z)) changes sign in Δ; −|Re f| has a negative Laplacian measure along its zero set. | Subharmonicity of uNo |
std-a08Advanced |
u(z) = Re(1/(1 − 0.75z)) | This function is harmonic: its complex Hessian vanishes identically, so it is also subharmonic. | Subharmonicity of uYes |
std-a09Intermediate |
u(z) = max{0, Re(z/(1 − 0.75z))} | The maximum of 0 and a harmonic function is subharmonic. | Subharmonicity of uYes |
std-i13Intermediate |
u(z) = zz + 3(z2 + z2)/2 | u=4x²−2y² is strongly concave in one direction, yet u_{z z̄}=1>0. Subharmonicity depends on the sum of directional curvatures. | Subharmonicity of uYes |
std-i14Intermediate |
u(z) = −zz + 3(z2 + z2)/2 | u=2x²−2y² is strongly convex in one direction yet u_{z z̄}=−1. Small-circle averages are below the center value. | Subharmonicity of uNo |
std-i15Intermediate |
u(z) = zz − 3(zz)2 + 3(zz)3 | The graph rises monotonically with t=|z|² because F′(t)=(1−3t)²≥0, but u_{z z̄}=(1−3t)(1−9t)<0 for 1/9<t<1/3. | Subharmonicity of uNo |
std-i16Intermediate |
u(z) = zz + 2(z3 + z3)/2 | The harmonic term 2 Re(z³) contributes no Hessian. Despite the peaks and troughs, u_{z z̄}=1. | Subharmonicity of uYes |
std-i17Intermediate |
u(z) = −zz + 2(z3 + z3)/2 | 2 Re(z³) is harmonic, leaving the negative Hessian of −|z|², even near the origin. | Subharmonicity of uNo |
std-i18Intermediate |
u(z) = 1.8zz + 2(z4+z4)/2 | A fourth-degree harmonic perturbation creates deep valleys, but the complex Hessian remains 1.8>0. | Subharmonicity of uYes |
std-i19Beginner |
u(z) = −1.8zz + 2(z4+z4)/2 | The degree-four harmonic component does not change the Hessian: −1.8|z|² makes the function non-subharmonic. | Subharmonicity of uNo |
std-i20Beginner |
u(z) = −log(1−zz/1.122) | A potential for the Poincaré metric of the disc of radius 1.12 (up to normalization). Smooth and strictly subharmonic on Δ. | Subharmonicity of uYes |
std-i21Beginner |
u(z) = max{(z+z)/2, Re(ωz), Re(ω2z)}, ω=e2πi/3 | The maximum of three harmonic functions; positive Laplacian measure lies on three radiating creases. | Subharmonicity of uYes |
std-i22Beginner |
u(z) = min{(z+z)/2, Re(ωz), Re(ω2z)}, ω=e2πi/3 | The minimum of three harmonic functions gives negative Laplacian measure along switching lines. | Subharmonicity of uNo |
std-i23Beginner |
u(z) = max{log|z−0.48|, log|z+0.48|} | The maximum of two logarithmic potentials is subharmonic. Each pole is masked by the other branch; the switching set carries positive measure. | Subharmonicity of uYes |
std-i24Intermediate |
u(z) = min{max(log|z−0.48|,−2.4),max(log|z+0.48|,−2.4)} | Each truncated logarithmic potential is subharmonic, but taking their minimum creates a negative singular measure on the switching locus. | Subharmonicity of uNo |
std-i25Intermediate |
u(z) = log(|z2−0.4|2 + |z−0.25i|2 + 0.262) | For holomorphic f=(z²−0.4,z−0.25i,0.26), log‖f‖² is subharmonic. The nonzero constant component makes it strictly subharmonic. | Subharmonicity of uYes |
std-i26Intermediate |
u(z) = max{0, zz+2(z2 + z2)/2} | |z|²+2Re(z²) is strictly subharmonic, and its maximum with 0 remains subharmonic despite its saddle-shaped trough. | Subharmonicity of uYes |
std-i27Intermediate |
u(z) = min{0, zz+2(z2 + z2)/2} | On one side u=0, on the other u=|z|²+2Re(z²). Taking the minimum introduces a negative measure at their switching set. | Subharmonicity of uNo |
std-i28Intermediate |
u(z) = |(z+z)/2| + 0.8zz | The crease has positive measure, and the smooth region has complex Hessian 0.8>0; the whole function is strictly subharmonic. | Subharmonicity of uYes |
std-a10Advanced |
u(z) = gz²−1(2.85z) | Escape-rate Green function for P(w)=w²−1, composed with w=2.85z. It is subharmonic; its positive equilibrium measure lives on the rescaled Julia set. | Subharmonicity of uYes |
std-a11Intermediate |
u(z) = gz²−0.12256+0.74486i(2.85z) | A Green function for P(w)=w²−0.12256+0.74486i. Its fractal appearance changes, but its Laplacian measure remains positive. | Subharmonicity of uYes |
std-a12Beginner |
u(z) = −gz²−1(2.85z) | Negating the Green function makes the equilibrium measure on the Julia set negative. | Subharmonicity of uNo |
std-a13Intermediate |
u(z) = 3gz²−1(2.85z)+1.8zz+2.8(z2 + z2)/2 | A positive Green measure plus a quadratic form with Hessian 1.8. The saddle (4.6x²−1.0y²) has a concave direction, yet the sum is strictly subharmonic. | Subharmonicity of uYes |
std-a14Advanced |
u(z) = 3gz²−1(2.85z)−1.8zz+2.8(z2 + z2)/2 | The saddle (1.0x²−4.6y²) has a convex direction, but G is harmonic off the Julia set, where u_{z z̄}=−1.8. | Subharmonicity of uNo |
std-a15Advanced |
u(z) = 3gz²−0.12256+0.74486i(2.85z)+1.8zz+2.8 Re(eiπ/4z2) | A positive Julia-set measure plus a rotated harmonic saddle and 1.8|z|²: strictly subharmonic despite complex directional curvature. | Subharmonicity of uYes |
std-a16Advanced |
u(z) = 3gz²−0.12256+0.74486i(2.85z)−1.8zz+2.8 Re(eiπ/4z2) | Green is harmonic off the Julia set, leaving the negative constant Hessian −1.8. | Subharmonicity of uNo |
std-a17Beginner |
u(z) = −4gz²−1(2.85z)+1.8zz+2(z2 + z2)/2 | Off the Julia set the Hessian is +1.8, but on it there is −4 times the equilibrium measure. Positivity on the smooth part does not suffice. | Subharmonicity of uNo |
std-a18Advanced |
u(z) = gz²−1(2.85z)+1.8zz+2(z3 + z3)/2 | A cubic harmonic term produces strong waves, but the Hessian remains 1.8 plus the positive Green measure. | Subharmonicity of uYes |
std-a19Beginner |
u(z) = min{2gz²−1(2.85z), 0.65} | Capping a Green function from above creates a negative Laplacian measure along a regular level curve. This contrasts with a maximum. | Subharmonicity of uNo |
std-a20Intermediate |
u(z) = max{2gz²−1(2.85z), 0.65} | The maximum of a Green function and a constant is subharmonic, adding positive measure on a level curve. | Subharmonicity of uYes |
std-a21Advanced |
u(z) = max{2gz²−1(2.85z),1.1zz} | Both the Green function and 1.1|z|² are subharmonic, so their maximum is, too; a switching crease carries positive measure. | Subharmonicity of uYes |
std-a22Advanced |
u(z) = log(1+|P3(1.7z)|2), P(w)=w2−1 | Logarithmic norm of an iterated polynomial. For holomorphic F, log(1+|F|²) has Hessian |F′|²/(1+|F|²)²≥0. | Subharmonicity of uYes |
std-a23Beginner |
u(z) = −log(1+|P3(1.7z)|2), P(w)=w2−1+1.5zz | Negate the logarithmic norm and add 1.5|z|². The Hessian is 1.5−|F′|²/(1+|F|²)², negative in regions near suitable zeros of F. | Subharmonicity of uNo |
std-i29Advanced |
u(z) = .24 P.91(z; .2) | P_q(z;θ)=Re[(1+q e^(−iθ)z/1.055)/(1−q e^(−iθ)z/1.055)]. The Poisson solution of a Dirichlet problem on the disc of radius 1.055. Sharp boundary features do not change its vanishing complex Hessian. | Subharmonicity of uYes |
std-i30Intermediate |
u(z) = .24 P.87(z; .65) − .26 P.87(z; 3.45) | P_q(z;θ)=Re[(1+q e^(−iθ)z/1.055)/(1−q e^(−iθ)z/1.055)]. Two sharp boundary peaks with opposite signs: a difference of harmonic Poisson extensions. | Subharmonicity of uYes |
std-i31Advanced |
u(z) = (4/π) Im artanh(z/1.055) | Poisson extension of boundary values +1 on the upper semicircle and −1 on the lower semicircle; harmonic inside. | Subharmonicity of uYes |
std-i32Advanced |
u(z) = .75 S(z) + .45 P.78(z; 1.85) − .35 P.80(z; 4.25) | S(z)=(4/π)Im artanh(z/1.055), P_q(z;θ)=Re[(1+q e^(−iθ)z/1.055)/(1−q e^(−iθ)z/1.055)]. Combining sharp steps and boundary peaks still gives a harmonic function. | Subharmonicity of uYes |
std-i33Advanced |
u(z) = .7 Re((z/1.028)3) + .36 Re((z/1.028)11) − .27 Im((z/1.028)16) | A finite Fourier/Poisson extension with rapid boundary oscillations: a real linear combination of real and imaginary parts of holomorphic polynomials. | Subharmonicity of uYes |
std-i34Beginner |
u(z) = .55·(.24 P.91(z; .2)) + 2.3[(zz)2 − .65zz] | P_q(z;θ)=Re[(1+q e^(−iθ)z/1.055)/(1−q e^(−iθ)z/1.055)]. The Poisson part is harmonic, but the added radial term has Hessian 2.3(4|z|²−0.65), negative on |z|<√(0.65/4). | Subharmonicity of uNo |
std-i35Beginner |
u(z) = .5 S(z) − 2.2zz | S(z)=(4/π)Im artanh(z/1.055). The step-like Poisson extension is harmonic; adding −2.2|z|² makes its complex Hessian identically −2.2. | Subharmonicity of uNo |
std-a24Intermediate |
u(z) = log KAt(.88,.88), t = 1 + 0.15z | Annular fibers A_t={0.25<|w|<2.4e^{-φ(t)}}, φ(t)=.24|z|²+.14Re(z³)+.16Re(t⁻⁷−1). Pseudoconvex family and holomorphic section w=.88 give subharmonic log Bergman kernel; evaluated numerically via a Laurent basis. | Subharmonicity of uYes |
std-a25Advanced |
u(z) = log KBt(.88,.88), t = 1 + 0.15z | B_t={0.25<|w|<2.4e^{-ψ(t)}}, ψ(t)=.18|z|²+.24Re(z⁵)−.13Re(t⁻⁸−1). Despite complex oscillation, the log Bergman kernel along a holomorphic section of a pseudoconvex family is subharmonic. | Subharmonicity of uYes |
std-a26Beginner |
u(z) = log KA(.40+.47zz, .40+.47zz), A={0.25<|w|<1.9} | The logarithm of a fixed annulus Bergman kernel is psh, but evaluation at w=.40+.47|z|² is NOT along a holomorphic section. The complex Hessian is negative at the origin. | Subharmonicity of uNo |
Subharmonic? — −log mode (28 examples)
These 28 examples plot u and test subharmonicity of −log u on the unit disc. The ID selects this mode automatically. Viewer: sh.
| Example ID | Function or domain | What the example shows | Verdict |
|---|---|---|---|
log-b01Beginner |
u(z) = 1 − zz | The Hessian of −log(1−|z|²) is positive and grows near the boundary. | Subharmonicity of −log uYes |
log-b02Beginner |
u(z) = 1 + zz | log(1+|z|²) is subharmonic, but its negative is not. | Subharmonicity of −log uNo |
log-b03Beginner |
u(z) = exp((z+z)/2) | −log(exp(Re z)) = −Re z is harmonic. | Subharmonicity of −log uYes |
log-b04Beginner |
u(z) = exp(−zz) | −log u = |z|². | Subharmonicity of −log uYes |
log-b05Intermediate |
u(z) = exp(zz) | −log u = −|z|². | Subharmonicity of −log uNo |
log-b06Intermediate |
u(z) = 2 + (z2 + z2)/2 | u is positive and harmonic; −log u is subharmonic for any positive harmonic u. | Subharmonicity of −log uYes |
log-b07Intermediate |
u(z) = 2 − (z2 + z2)/2 | The negative logarithm of a positive harmonic function is subharmonic. | Subharmonicity of −log uYes |
log-b08Intermediate |
u(z) = 2 + (zz)2 | Its Hessian is negative away from the origin. | Subharmonicity of −log uNo |
log-b09Beginner |
u(z) = 2 + (z+z)/2 | u=2+Re z is positive and harmonic, so −log u is subharmonic. | Subharmonicity of −log uYes |
log-b10Beginner |
u(z) = 2 − zz | The Hessian of −log(2−|z|²) is 2/(2−|z|²)², which is positive. | Subharmonicity of −log uYes |
log-b11Advanced |
u(z) = exp((z2 + z2)/2) | −log u=−Re(z²) is harmonic. | Subharmonicity of −log uYes |
log-b12Advanced |
u(z) = exp(−(z2 + z2)/2) | This function is harmonic: its complex Hessian vanishes identically, so it is also subharmonic. | Subharmonicity of −log uYes |
log-i01Intermediate |
u(z) = max{1, 1.3+(z+z)/2} | −log u is the minimum of two subharmonic functions; the mean-value inequality fails at the switching line. | Subharmonicity of −log uNo |
log-i02Intermediate |
u(z) = min{1, 1.3+(z+z)/2} | −log u=max{0,−log(1.3+Re z)}, the maximum of two subharmonic functions. | Subharmonicity of −log uYes |
log-i03Intermediate |
u(z) = exp(|(z+z)/2|) | −log u=−|Re z| has a negative Laplacian measure on its crease. | Subharmonicity of −log uNo |
log-i04Beginner |
u(z) = exp(−|(z+z)/2|) | −log u=|Re z| is the maximum of two harmonic functions. | Subharmonicity of −log uYes |
log-i05Intermediate |
u(z) = max{1.5−zz, 1.4} | −log u is the minimum of two subharmonic functions, with a negative singular measure on the crease. | Subharmonicity of −log uNo |
log-i06Intermediate |
u(z) = min{1.5−zz, 1.4} | −log u is the maximum of two subharmonic functions. | Subharmonicity of −log uYes |
log-a01Advanced |
u(z) = exp(−gP(z), P(z)=z2−2) | −log u=g_P is a polynomial Green function and is subharmonic. The graph is approximate. | Subharmonicity of −log uYes |
log-a02Advanced |
u(z) = exp(gP(z), P(z)=z2−2) | −log u=−g_P has a negative Laplacian measure on the Julia set. | Subharmonicity of −log uNo |
log-a03Advanced |
u(z) = exp(Re ∑k=0∞ 0.55k(z/1.03)2k) | −log u is the negative real part of a holomorphic function and hence harmonic. The rendering is truncated. | Subharmonicity of −log uYes |
log-a04Advanced |
u(z) = exp(Re ∑k=0∞ 0.55k(z/1.03)2k+1.4zz) | −log u=−Re f−1.4|z|² has a negative Hessian. | Subharmonicity of −log uNo |
log-a05Advanced |
u(z) = exp(Re ∑k=0∞ 0.55k(z/1.03)2k−1.4zz) | −log u=−Re f+1.4|z|² has a positive Hessian. | Subharmonicity of −log uYes |
log-i07Intermediate |
u(z) = exp(zz+(z2 + z2)/2) | u=exp(2x²) looks strongly convex, yet −log u=−2x² has Hessian −1. | Subharmonicity of −log uNo |
log-i08Intermediate |
u(z) = exp(−zz+(z2 + z2)/2) | u=exp(−2y²) curves strongly downwards, while −log u=2y² is strictly subharmonic. | Subharmonicity of −log uYes |
log-i09Beginner |
u(z) = 1−zz/1.122 | −log u is a Poincaré metric potential on the disc of radius 1.12, strictly subharmonic. | Subharmonicity of −log uYes |
log-i10Advanced |
u(z) = exp(|(z+z)/2|−1.3zz) | −log u=1.3|z|²−|Re z|. The smooth Hessian is positive, but the crease carries a negative Laplacian measure. | Subharmonicity of −log uNo |
log-i11Intermediate |
u(z) = exp(−|(z+z)/2|−1.3zz) | −log u=1.3|z|²+|Re z|, with positive contributions both on the smooth regions and the crease. | Subharmonicity of −log uYes |
Plurisubharmonic? — examples and nonexamples (34 examples)
These 34 examples test plurisubharmonicity of u on the unit bidisc. Viewer: psh.
| Example ID | Function or domain | What the example shows | Verdict |
|---|---|---|---|
N01Beginner |
u(z, w) = |z|² + |w|² | The Levi form is diag(1,1), positive definite. | Plurisubharmonicity of uYes |
N02Beginner |
u(z, w) = |w|² − |z|² | The Levi curvature in the z-direction is −1, despite subharmonic w-slices. | Plurisubharmonicity of uNo |
N03Beginner |
u(z, w) = |z + w|² | The squared modulus of a holomorphic function; its Levi matrix is [[1,1],[1,1]] ≥ 0. | Plurisubharmonicity of uYes |
N04Beginner |
u(z, w) = −|z + w|² | On z=w=ζ the restriction is −4|ζ|², not subharmonic. | Plurisubharmonicity of uNo |
N05Beginner |
u(z, w) = Re(zw) | The real part of the holomorphic function zw is pluriharmonic. | Plurisubharmonicity of uYes |
N06Beginner |
u(z, w) = |z|² + 2|w|² | The Levi matrix is diag(1,2), positive definite. | Plurisubharmonicity of uYes |
N07Beginner |
u(z, w) = |z|² − |w|² | The Levi curvature is −1 along the w-direction. | Plurisubharmonicity of uNo |
N08Beginner |
u(z, w) = |z − w|² | The squared modulus of z−w has a positive-semidefinite Levi matrix. | Plurisubharmonicity of uYes |
N09Beginner |
u(z, w) = |z|² + Re(w²) | Re(w²) is pluriharmonic and contributes nothing to the Levi form. | Plurisubharmonicity of uYes |
N10Beginner |
u(z, w) = −|z|² + Re(w²) | The w-slices are harmonic, but the z-direction has Levi curvature −1. | Plurisubharmonicity of uNo |
A01Intermediate |
u(z, w) = |z|² + |w|² − 1.8Re(z w̄) | The Levi matrix is [[1,−0.9],[−0.9,1]], with eigenvalues 1±0.9. Both coordinate slices are strictly subharmonic; the mixed term decides positivity. | Plurisubharmonicity of uYes |
A02Intermediate |
u(z, w) = |z|² + |w|² − 2.2Re(z w̄) | The Levi matrix is [[1,−1.1],[−1.1,1]], with eigenvalues 1±1.1. Both coordinate slices are strictly subharmonic; the mixed term decides positivity. | Plurisubharmonicity of uNo |
A03Intermediate |
u(z, w) = |z|² + |w|² − 4Re(z w̄) | The Levi matrix is [[1,−2],[−2,1]], with eigenvalues 1±2. Both coordinate slices are strictly subharmonic; the mixed term decides positivity. | Plurisubharmonicity of uNo |
A04Intermediate |
u(z, w) = |z|² + |w|² − 2Re(z w̄) | The Levi matrix is [[1,−1],[−1,1]], with eigenvalues 1±1. Both coordinate slices are strictly subharmonic; the mixed term decides positivity. | Plurisubharmonicity of uYes |
A05Intermediate |
u(z, w) = |w − z²|² | The squared modulus of w−z² is psh; its Levi matrix has determinant zero. | Plurisubharmonicity of uYes |
A06Intermediate |
u(z, w) = |z|² + |w|² − 2Re(zw) | Re(zw) is pluriharmonic, so the Levi matrix remains diag(1,1). | Plurisubharmonicity of uYes |
A07Intermediate |
u(z, w) = 0.2|z|² + |w|² − 1.2Re(z w̄) | Both coordinate sections are strictly subharmonic, yet det(H)=0.2−0.6²=−0.16. | Plurisubharmonicity of uNo |
A08Intermediate |
u(z, w) = 0.4|z|² + |w|² − 0.8Re(z w̄) | Positive diagonal entries and determinant 0.4−0.4²=0.24>0. | Plurisubharmonicity of uYes |
A09Intermediate |
u(z, w) = |zw|² | The squared modulus of the holomorphic function zw has positive-semidefinite Levi form. | Plurisubharmonicity of uYes |
A10Intermediate |
u(z, w) = −|zw|² | Fixing w=1/2 gives −|z|²/4, which is not subharmonic. | Plurisubharmonicity of uNo |
M01Advanced |
u(z, w) = log(1 + |z|² + |w|²) | log(|1|²+|z|²+|w|²) is psh; its Levi form is positive definite. | Plurisubharmonicity of uYes |
M02Advanced |
u(z, w) = −log(1 + |z|² + |w|²) | At the origin its Levi form is −I, hence it is not psh. | Plurisubharmonicity of uNo |
M03Advanced |
u(z, w) = |z|² + |w|² − 3|zw|² | At w=0.7 one has u_{z z̄}=1−3(0.7)²<0. | Plurisubharmonicity of uNo |
M04Advanced |
u(z, w) = |z|² + |w|² + |zw|² | A sum of squared moduli of the holomorphic functions z, w, and zw. | Plurisubharmonicity of uYes |
M05Advanced |
u(z, w) = |w − z²|² − 0.2|z|² | At the origin u_{z z̄}=−0.2, despite the prominent squared-modulus term. | Plurisubharmonicity of uNo |
M06Advanced |
u(z, w) = |w − z²|² + 0.2|z|² | A sum of squared moduli; the Levi determinant is identically 0.2. | Plurisubharmonicity of uYes |
M07Advanced |
u(z, w) = |z|⁴ + |w|⁴ − 0.4Re(z w̄) | Both coordinate slices are subharmonic, yet H(0,0)=[[0,−0.2],[−0.2,0]] has a negative eigenvalue. | Plurisubharmonicity of uNo |
M08Advanced |
u(z, w) = |z|⁴ + |w|⁴ | The Levi form is diag(4|z|²,4|w|²)≥0, degenerate at the origin. | Plurisubharmonicity of uYes |
M09Advanced |
u(z, w) = |z|² + |w|² + 3Re(z² w̄) | Both coordinate slices are strictly subharmonic, but the Levi eigenvalues are 1±3|z|. | Plurisubharmonicity of uNo |
M10Advanced |
u(z, w) = |z|² + |w|² + Re(z² w̄) | The Levi eigenvalues are 1±|z|, both positive throughout Δ×Δ. | Plurisubharmonicity of uYes |
S01Intermediate |
u(z, w) = max(|z|², |w|²) | The maximum of two psh functions is psh, despite the crease at |z|=|w|. | Plurisubharmonicity of uYes |
S02Intermediate |
u(z, w) = min(|z|², |w|²) | Taking a minimum does not preserve psh: a complex disc crossing the switching crease violates the mean inequality. | Plurisubharmonicity of uNo |
S03Advanced |
u(z, w) = max(|z + w|², |z − w|²) | The maximum of |z+w|² and |z−w|² is psh, including across the switching locus. | Plurisubharmonicity of uYes |
S04Advanced |
u(z, w) = min(|z + w|², |z − w|²) | Although both branches are psh, their minimum has a negative circle-mean gap across the switching locus. | Plurisubharmonicity of uNo |
Ryokuinzu — domains and fibers (54 examples)
These 54 examples show the w-fiber over a chosen z. The verdict concerns pseudoconvexity of the domain. Viewer: ryokuinzu.
| Example ID | Function or domain | What the example shows | Verdict |
|---|---|---|---|
n01Beginner |
Ω = { (z,w) : |z| < 1, |w| < 0.90 } | A fixed circular fiber. | Pseudoconvexity of the domainYes |
n02Beginner |
Ω = { (z,w) : |z| < 1, |w| < exp(−0.65|z|²) } | The fiber shrinks away from the origin. | Pseudoconvexity of the domainYes |
n03Beginner |
Ω = { (z,w) : |z| < 1, |w| < exp(+0.65|z|²) } | The fiber expands away from the origin. | Pseudoconvexity of the domainNo |
n04Intermediate |
Ω = { (z,w) : |z| < 1, |w| < exp(−0.8 Re(z²)) } | Growth differs by direction, but the potential is harmonic. | Pseudoconvexity of the domainYes |
n05Intermediate |
Ω = { (z,w) : |z| < 1, |w| < exp(0.5|z|² − 0.6 Re(z²)) } | A harmonic contribution does not repair a negative complex Hessian. | Pseudoconvexity of the domainNo |
n06Beginner |
Ω = { (z,w) : |z| < 1, |w − 0.65z| < 0.90 } | A disc translating holomorphically. | Pseudoconvexity of the domainYes |
n07Intermediate |
Ω = { (z,w) : |z| < 1, |w − 0.65z| < exp(−0.40|z|²) } | A moving disc with a shrinking radius. | Pseudoconvexity of the domainYes |
n08Beginner |
Ω = { (z,w) : |z| < 1, |w − 0.65z| < exp(+0.45|z|²) } | A moving disc with a growing radius. | Pseudoconvexity of the domainNo |
n09Beginner |
Ω = { (z,w) : |z| < 1, |w − 0.55z²| < 0.85 } | A curved path of disc centers. | Pseudoconvexity of the domainYes |
n10Beginner |
Ω = { (z,w) : |z| < 1, |w| < exp(−0.55|z|⁴) } | The radius has weak curvature at the origin. | Pseudoconvexity of the domainYes |
n11Beginner |
Ω = { (z,w) : |z| < 1, |w| < exp(+0.55|z|⁴) } | A fourth-order obstruction, invisible to second order at z = 0. | Pseudoconvexity of the domainNo |
a01Intermediate |
Ω = { (z,w) : |z| < 1, |w| < exp(−[0.30|z|² + 0.85 Re(z²)]) } | Real convexity is not complex subharmonicity. | Pseudoconvexity of the domainYes |
a02Intermediate |
Ω = { (z,w) : |z| < 1, |w| < exp(−[−0.35|z|² + 0.85 Re(z²)]) } | The visually dominant harmonic term disguises a negative Hessian. | Pseudoconvexity of the domainNo |
a03Intermediate |
Ω = { (z,w) : |z| < 1, |w − 0.45z² − 0.25iz| < exp(−[0.35|z|² + 0.45 Re(z³)]) } | A polynomially moving center and an anisotropic radius. | Pseudoconvexity of the domainYes |
a04Intermediate |
Ω = { (z,w) : |z| < 1, |w − 0.45z² − 0.25iz| < exp(−[−0.38|z|² + 0.45 Re(z³)]) } | Change only the sign of the complex curvature. | Pseudoconvexity of the domainNo |
a05Intermediate |
Ω = { (z,w) : |z| < 1, |w| < exp(−[0.15|z|² + 0.23|z|⁴]) } | Positive radial curvature, strengthening towards the edge. | Pseudoconvexity of the domainYes |
a06Advanced |
Ω = { (z,w) : |z| < 1, |w| < exp(−[0.30|z|² − 0.24|z|⁴]) } | The curvature changes sign towards the boundary. | Pseudoconvexity of the domainNo |
a07Intermediate |
Ω = { (z,w) : |z| < 1, |w| < exp(−[−0.12|z|² + 0.28|z|⁴]) } | Most of the disc behaves correctly, but the center does not. | Pseudoconvexity of the domainNo |
a08Beginner |
Ω = { (z,w) : |z| < 1, |w| < 1.05, |w − 0.72z| < 0.88 } | Intersect a fixed disc with a holomorphically moving disc. | Pseudoconvexity of the domainYes |
a09Intermediate |
Ω = { (z,w) : |z| < 1, |w − 0.60z| < 0.96, |w + 0.55z| < 0.96 } | A lens formed by two moving discs. | Pseudoconvexity of the domainYes |
a10Intermediate |
Ω = { (z,w) : |z| < 1, |w| < exp(+0.55|z|²), |w − 0.65z| < 1.27 } | A growing disc is cut by a second disc. A bad boundary patch survives. | Pseudoconvexity of the domainNo |
a11Intermediate |
Ω = { (z,w) : |z| < 1, |w| < 1.30, |w − 0.40z²| < exp(−0.27|z|²) } | A lens with nonlinear motion and a shrinking constraint. | Pseudoconvexity of the domainYes |
m01Beginner |
Ω = { (z,w) : |z| < 1, 0.30 < |w| < 1.25 } | Each fiber is the same annulus. | Pseudoconvexity of the domainYes |
m02Intermediate |
Ω = { (z,w) : |z| < 1, 0.30 exp(0.18|z|²) < |w| < 1.23 exp(−0.20|z|²) } | Both boundaries bend in the pseudoconvex direction. | Pseudoconvexity of the domainYes |
m03Beginner |
Ω = { (z,w) : |z| < 1, 0.30 exp(−0.45|z|²) < |w| < 1.20 } | The inner boundary bends in the wrong direction. | Pseudoconvexity of the domainNo |
m04Beginner |
Ω = { (z,w) : |z| < 1, 0.30 < |w| < 1.20 exp(+0.50|z|²) } | The outer boundary has negative curvature. | Pseudoconvexity of the domainNo |
m05Intermediate |
Ω = { (z,w) : |z| < 1, 0.30 exp(0.25|z|²) < |w − 0.38z| < 1.22 exp(−0.10|z|²) } | A holomorphically translating annulus. | Pseudoconvexity of the domainYes |
m06Advanced |
Ω = { (z,w) : |z| < 1, |w − 0.38z³ − 0.25iz²| < exp(−[0.12|z|² + 0.22|z|⁴ + 0.70 Re(z³)]) } | Strong directional deformation with positive complex curvature. | Pseudoconvexity of the domainYes |
m07Advanced |
Ω = { (z,w) : |z| < 1, |w − 0.38z³ − 0.25iz²| < exp(−[0.38|z|² − 0.28|z|⁴ + 0.70 Re(z³)]) } | The complex curvature switches sign near the rim. | Pseudoconvexity of the domainNo |
m08Advanced |
Ω = { (z,w) : |z| < 1, |w − 0.45z| < 1.05, |w + 0.40z| < 1.04, |w − 0.30i| < 1.12 } | Three intersecting discs with holomorphic centers. | Pseudoconvexity of the domainYes |
m09Advanced |
Ω = { (z,w) : |z| < 1, |w| < exp(+0.45|z|²), |w − 0.50z| < 1.28, |w + 0.35z| < 1.28 } | Two additional constraints obscure a locally nonpseudoconvex boundary. | Pseudoconvexity of the domainNo |
n12Beginner |
Ω = { (z,w) : |z| < 1, |w| < 0.90, (|z| > 0.38 or |w| < 0.33) } | A classical Hartogs figure: a thin central core and an outer collar. | Pseudoconvexity of the domainNo |
n13Beginner |
Ω = { (z,w) : |z| < 1, |w| < 0.80 } | A polydisc with a smaller w-radius. | Pseudoconvexity of the domainYes |
n14Beginner |
Ω = { (z,w) : |z| < 1, |Re w|<0.64, |Im w|<0.56, Re(z+w)<1.05, Im(w−z)<1.00 } | An intersection of real affine half-spaces and the base disc is convex. | Pseudoconvexity of the domainYes |
n15Intermediate |
Ω = { (z,w) : |z| < 1, |Re w|<0.70, |Im w|<0.60, (Re z>0.08 or Re w<−0.08) } | A re-entrant real-polyhedral corner is nonpseudoconvex. | Pseudoconvexity of the domainNo |
n16Advanced |
Ω = { (z,w) : |z| < 1, |w|<0.95, |w² − 0.72z|<0.42 } | An analytic polyhedron with possibly disconnected fibers. | Pseudoconvexity of the domainYes |
n17Intermediate |
Ω = { (z,w) : |z| < 1, u=(z−w)/√2, v=(z+w)/√2, |u|<0.62, |v|<0.62 } | The unitary image of a scaled bidisc. The slices are lenses. | Pseudoconvexity of the domainYes |
a12Advanced |
Ω = { (z,w) : |z| < 1, u=(z−w)/√2, v=(z+w)/√2, |u|,|v|<0.62, (|u|>0.29 or |v|<0.23) } | A genuinely unitary rotation of a Hartogs figure. | Pseudoconvexity of the domainNo |
a13Beginner |
Ω = { (z,w) : |z| < 1, |w−0.36z²|<0.76 } | A polynomial automorphism of a polydisc with holomorphically moving discs. | Pseudoconvexity of the domainYes |
a14Intermediate |
Ω = { (z,w) : |z| < 1, |w−0.52z²|<0.90, (|z|>0.38 or |w−0.52z²|<0.33) } | A Hartogs figure under the automorphism (z,v)↦(z,v+0.52z²). | Pseudoconvexity of the domainNo |
a15Advanced |
Ω = { (z,w) : |z| < 1, |w−0.28z²|<0.95, |(w−0.28z²)²−0.72z|<0.42 } | The analytic polyhedron after a quadratic shear in w. | Pseudoconvexity of the domainYes |
a16Intermediate |
Ω = { (z,w) : |z| < 1, |u|<0.62, |v|<0.62, u=cos(π/6)z−sin(π/6)w, v=sin(π/6)z+cos(π/6)w } | Another unitary image of a polydisc with a less symmetric rotation. | Pseudoconvexity of the domainYes |
a17Intermediate |
Ω = { (z,w) : |z| < 1, |z|<1, |Re(w−0.22z²)|<0.64, |Im(w−0.22z²)|<0.56, Re(z+w−0.22z²)<1.05, Im(w−0.22z²−z)<1.00 } | A quadratic holomorphic shear of a real convex polyhedral domain. | Pseudoconvexity of the domainYes |
m10Advanced |
Ω = { (z,w) : |z| < 1, u=z−0.42w², v=w, |u|,|v|<0.62, (|u|>0.29 or |v|<0.23) } | A Hartogs figure under a triangular polynomial automorphism mixing the base. | Pseudoconvexity of the domainNo |
m11Advanced |
Ω = { (z,w) : |z| < 1, u=z−0.38w², v=w, |u|<0.62, |v|<0.62, |v²−0.72u|<0.42 } | An analytic polyhedron with quadratic mixing of parameter and fiber. | Pseudoconvexity of the domainYes |
m12Advanced |
Ω = { (z,w) : |z| < 1, 0<|z|<1, |w−exp(i t)|²<1−η(t), t=log(|z/0.16|²), η(t)=0.60·max(|t|−2.20,0)⁴ } | A smooth pseudoconvex Diederich–Fornæss-type worm with rotating disc fibers. | Pseudoconvexity of the domainYes |
m13Advanced |
Ω = { (z,w) : |z| < 1, u=cos(π/6)z−sin(π/6)w, v=sin(π/6)z+cos(π/6)w, |u|,|v|<0.62, (|u|>0.29 or |v|<0.23) } | A less symmetric unitary rotation of a Hartogs figure. | Pseudoconvexity of the domainNo |
m14Advanced |
Ω = { (z,w) : |z| < 1, |z|<1, |Re(w−0.30z²)|<0.70, |Im(w−0.30z²)|<0.60, (Re z>0.08 or Re(w−0.30z²)<−0.08) } | A biholomorphic shear of a nonpseudoconvex, nonconvex real-polyhedral domain. | Pseudoconvexity of the domainNo |
m15Advanced |
Ω = { (z,w) : |z| < 1, |z|<1, |w|<0.73, |w³−0.50z|<0.20 } | A cubic analytic polyhedron with changing fiber connectivity. | Pseudoconvexity of the domainYes |
n18Beginner |
Ω = { (z,w) : |z| < 1, (|z| < 0.48 and |w| < 1) or (0.40 < |w| < 1) } | The standard Hartogs figure: the central disc becomes an annulus outside |z| = 0.48. | Pseudoconvexity of the domainNo |
n19Beginner |
Ω = { (z,w) : |z| < 1, 0.30 exp(−0.20|z|²) < |w| < 1.20 exp(+0.24|z|²) } | The annular band thickens outwards on both sides; the inner log-radius is not subharmonic. | Pseudoconvexity of the domainNo |
n20Beginner |
Ω = { (z,w) : |z| < 1, 0.30 < |w − 0.30z| < 1.10 } | A constant annulus translating holomorphically. | Pseudoconvexity of the domainYes |
lecture-ballBeginnerLecture example |
Ω = { (z,w) ∈ ℂ² : |z|² + |w|² < 1 } | The unit ball in ℂ². Its fiber over z is the disc of radius √(1−|z|²). | Pseudoconvexity of the domainYes |
lecture-polydiscBeginnerLecture example |
Ω = { (z,w) ∈ ℂ² : |z| < 1, |w| < 1 } | The unit bidisc Δ × Δ. Every fiber is the unit disc. | Pseudoconvexity of the domainYes |
Source data: resources/games/catalog-sh.json, catalog-psh.json and catalog-ryokuinzu.json. SH: 106 examples (78 standard, 28 −log); PSH: 34; Ryokuinzu: 54, including the additional lecture examples lecture-ball and lecture-polydisc.