SCVEAMER · VERSION 1.5 PROTOTYPE · ENGLISH EDITION

Write in TeX. Teach in your browser.

SCVeamer 1.5 prototype
A Beamer-style HTML slide editor for visualizing several complex variables

English edition · November 6, 2026 · The sample slides, editor, presentation controls, templates and documentation are in English. Version 1.5 adds local MP4 and website slides, standard section dividers and fixed-position navigation. No video files are bundled.

The bundled sample opens automatically on first launch. Edit its TeX source and regenerate both the PDF and interactive HTML presentation.

Keep writing mathematics in Beamer. SCVeamer combines the typeset pages and interactive examples into one HTML file, with discrete slides and step-by-step overlays. Video files use an adjacent folder; website slides load their URLs when viewed.

Version 1.4 review history

On 24 October 2026, Takayuki Koike reported trying the 1.4 prototype on his Windows 11 computer without noticing particular problems in the operations tried. The individual operations, edition used, and environment details were not recorded comprehensively; this is not a claim of exhaustive testing or separate Windows validation of both editions.

A systematic Windows test covering fresh setup, individual GUI functions and the full TeX workflow, Mac checks, and executable build/run validation has not been recorded.

Publication supplement · Version 1.4 validation · PDF-backend comparison · Development and review scope

Before you begin

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.

The sample lecture, presentation template and starter are included.

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.

Edit and save the source → Build HTML from TeX → Open HTML and check the result

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

RequirementWhat it does
Python 3.11 or later, with TkinterRuns the editor and conversion program. A standard CPython installation with Tcl/Tk is suitable.
A TeX installation with LuaLaTeX and BeamerNeeded 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.0Read 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 situationUsual working folder
Python editionworkspace/ inside the kit: workspace/day1/, workspace/template-v2/ or workspace/starter/.
Executable editionworkspace/ beside the executable.
The above location is not writableSCVeamer/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, typeset slides and included interactive figures can run offline. Viewing a website slide requires internet access.

On the first LuaLaTeX run, you may see:
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/.

  1. Choose Edit source and open talk.tex, or open it directly in your usual TeX editor.
  2. Find the subtitle and change it, for example:
    \subtitle{Complex Analysis in Several Variables — editing practice}
  3. Save with Ctrl+S.
  4. Return to SCVeamer and choose Build HTML from TeX.
  5. 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.

The completed HTML is a generated output.

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.

  1. Extract the new ZIP and start its editor.
  2. 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.
  3. Check the actual Working folder, then run Check environment and first-time setup if required.
  4. 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 PDF backend introduced in version 1.4. The embedded scveamer_version is 1.5, and the renderer field identifies pypdfium2 and PNG output. English language defaults, example IDs and mathematical behavior are preserved. holotalk_editor.py remains a compatibility entry point; normally use scveamer.py.

To use the new media commands in an older project, copy the 1.5 starter/theme/holotalk-games.sty into its theme/ folder. For the standard section dividers, also update holomorphonautica.sty. Preserve customized styles and rebuild the PDF and HTML.

3. Writing and editing TeX

What to changeWhere to edit
Title, subtitle, author and colorsThe 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 overlaysThe part of talk.tex after \begin{document}. A frame is one logical slide.
Images and diagramsPut 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 noteslecture-plan.json. The bundled sample includes short titles and observation prompts, with no speaker notes.
Sample's static versions of interactive slidesThe 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}
ArgumentMeaning
{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.

Changing the example ID does not regenerate the static picture.

Update the PDF text in print or SCVprint@..., the referenced image, and any notes so that they match the chosen interactive example.

Section dividers

The standard theme inserts a divider for \section{Heading}, with a small Part label, a large pale number and a left-aligned heading. It has zero planned minutes but counts as a slide; include it in any lecture-plan.json numbering. To show a subtitle, set \scvsectionsubtitle{Project Holomorphonautica} in the preamble. Use \scvsectionpages{off} if you already supply your own dividers.

Local video and web pages

Like \exploreframe, each command below creates a whole slide and goes between ordinary frames. Put an MP4 in the project folder or a subfolder, using a relative path with / separators:

\videoframe[minutes=2,lang=en]
  {media/movie.mp4}{Video demonstration}

Add poster={media/still.png} to the options to supply a prepared PNG or JPEG. HTML uses the browser's playback controls; playback starts manually and pauses when you leave the slide. The PDF and handout show the title and a VIDEO label, with the still image if supplied.

To show an HTTPS website with the usual slide controls below it:

\webframe[minutes=3,lang=en]
  {https://tkoike.com/proj_holomorphonautica/index.html?lang=en}
  {Project Holomorphonautica}

This needs internet access and a site that permits embedding. The Open original page in new tab link is always available. Leaving the slide closes its page; returning opens the specified URL again. The PDF and handout show the title and a clickable URL.

Save and rebuild

  1. Save the TeX source.
  2. Check that the editor's Working folder is the project you edited.
  3. Choose Build HTML from TeX.
  4. 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 actionMeaning
Start 14:55, first slide 2 minutes, second slide 3 minutesThe first slide shows “Planned end 14:57”; the second shows “Planned end 15:00”.
Overlays, going back, or jumping through contentsThe 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 durationConversion reports the missing slide rather than displaying an incorrect schedule. Set a duration for every slide.
duration_minutes in the planThe 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.

The bundled sample

Its 47 slides total 135 minutes, starting at 14:55 and ending at 17:10. The original 46 slides are followed by one zero-minute slide showing the English project website. No video files or video demonstration slides are bundled. 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.

FieldMeaning
slideLogical slide number, starting from 1. Do not count each \pause overlay separately.
titleA short title for the contents and speaker notes. The PDF title is used when omitted.
duration_minutesPlanned duration; optional if specified in TeX.
notesSpeaker notes. Use \n for a newline inside a JSON string. Omit this field when no notes are needed.
prompt / observationPrompt 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 and planned times appear on the projected screen.

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.

Footer text and HTML navigation

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 1.5, the HTML toolbar omits the permanent title/system-name area and keeps the previous/next arrows and counter in a fixed-width group. At the same window size, slide changes do not move the arrows. show_brand is still accepted for compatibility but no longer changes the toolbar.

5. Editor buttons and outputs

ControlAction
Project selectorCreates or resumes an editable copy of a bundled project.
Open my project folderOpens an existing project outside the built-in selector.
Create a new projectCopies a fresh six-slide starter into a new empty folder.
Open folderShows the actual working folder in the system file manager.
Check environmentChecks 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 sourceOpens the selected source file in its associated editor. You may also open it directly in TeXworks or your usual editor.
Build HTML from TeXCompiles the TeX PDF, then creates HTML and any configured handout or speaker guide.
Build HTML from existing PDFConverts the current PDF without compiling TeX.
Open HTML / Open PDFOpens the generated file using the associated browser or PDF viewer.
Open guideOpens the generated speaker guide when enabled. The bundled sample has no speaker notes.
Manual / Credits / Save logOpens 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.

  1. Compile the working copy's talk.tex in your usual TeX editor, updating talk.pdf in the same folder.
  2. Check that SCVeamer's Working folder is that project.
  3. Choose Build HTML from existing PDF.
  4. 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; video and website slides use the markers from \videoframe and \webframe; 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 prototype is supplied as Python source. No executable build has been validated. The reported Windows 11 use is described in the version 1.4 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

ProblemWhat to check
No window after double-clickingRun py scveamer.py in a terminal to read the error. Check the Python installation or launcher command if py is unavailable.
Missing tkinterInstall Python with Tcl/Tk/IDLE. Test with py -m tkinter, and perform setup using that Python.
Missing pypdf, pypdfium2 or PillowRun First-time setup (install libraries), then use the restarted editor. Check the log if another Python environment was launched.
LuaLaTeX not foundCheck that TeX is installed and select the directory containing lualatex.exe.
A Windows path causes Undefined control sequence before the source loadsThe 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 stallThe 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 packageRead 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 PDFClose the output in a viewer that locks it, then rebuild. Check that the working folder is writable.
Saved edits are missing from HTMLCheck 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 missingFind 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 IDCheck the catalog, including viewer type and letter case. IDs must be selected as a viewer/ID pair.
No planned end timeUse the current theme, set a start time and durations for every slide, save and rebuild.
The surface remains too transparent in the circle testAn older HTML contains an older embedded UI. Regenerate it using this kit and open the new file.
Titles or notes appear on the wrong slideAlign 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 sourceThis 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 computerPrepare 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

PurposeFiles to use or share
Show an interactive lectureThe bundled examples need only index.html. If you add videos, also share the adjacent index_media/ folder (or the folder named after your output HTML). Viewers need a browser, with no Python, TeX or local server. Website slides need internet access.
Static reading or printinghandout.pdf if enabled. It contains the final state of each logical slide. Template v2 defaults to talk.pdf only.
Read every overlay as PDF pagestalk.pdf, including the display states generated by \pause.
Let someone edit your lectureThe 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. Its validation record is VALIDATION_1_5.md in the downloaded kit. The version 1.4 publication supplement records the reported Windows 11 use without identifying which language edition was tried. Systematic GUI workflow tests, executable builds and antivirus checks have not been recorded. The original validation records are retained as history.

Research project and joint development

SCVeamer 1.5 prototype — 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 projectDeveloping geometric intuition in several complex variables through AI-assisted visualization
ProgrammeMEXT — Supporting Pioneering Research through AI for 1,000 Discovery challenges (SPReAD)
Funding periodJune 2026–January 2027
Principal investigatorTakayuki Koike, Institute of Pure and Applied Sciences, University of Tsukuba
Project nicknameProject Holomorphonautica

Joint development of the SCVeamer system

Jointly developed by Takayuki Koike with:

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

SoftwareRole and official information
Python and TkinterEditing interface and conversion workflow. Python / Tkinter
pypdf 6.10.0PDF structure, link annotations and vector handout generation. Documentation
pypdfium2 5.14.0 / PDFiumRendering PDF pages and extracting visible text. Documentation
Pillow 12.3.0Encoding the rendered pages as PNG images. Documentation
TeX Live, Beamer, LuaLaTeX and fontspecMathematical typesetting in the user's TeX environment. TeX Live / Beamer / fontspec. LuaTeX-ja is used by the separate Japanese edition.
PyInstallerOptional 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.

Project Holomorphonautica website

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.

Subharmonic? in −log mode

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.

Subharmonic? — standard mode (78 examples)

These 78 examples test subharmonicity of the plotted function u itself on the unit disc. Viewer: sh.

Subharmonic? — standard mode: ID, formula, explanation and verdict
Example IDFunction or domainWhat the example showsVerdict
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

Back to catalog search

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.

Subharmonic? — −log mode: ID, formula, explanation and verdict
Example IDFunction or domainWhat the example showsVerdict
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

Back to catalog search

Plurisubharmonic? — examples and nonexamples (34 examples)

These 34 examples test plurisubharmonicity of u on the unit bidisc. Viewer: psh.

Plurisubharmonic? — examples and nonexamples: ID, formula, explanation and verdict
Example IDFunction or domainWhat the example showsVerdict
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

Back to catalog search

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.

Ryokuinzu — domains and fibers: ID, formula, explanation and verdict
Example IDFunction or domainWhat the example showsVerdict
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

Back to catalog search

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.