<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Dominik Engel</title><link>http://localhost:1313/</link><atom:link href="http://localhost:1313/index.xml" rel="self" type="application/rss+xml"/><description>Dominik Engel</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Mon, 24 Oct 2022 00:00:00 +0000</lastBuildDate><image><url>http://localhost:1313/media/icon_hu10226378635250344412.png</url><title>Dominik Engel</title><link>http://localhost:1313/</link></image><item><title>Example Talk</title><link>http://localhost:1313/talk/example-talk/</link><pubDate>Sat, 01 Jun 2030 13:00:00 +0000</pubDate><guid>http://localhost:1313/talk/example-talk/</guid><description>&lt;div class="alert alert-note">
&lt;div>
Click on the &lt;strong>Slides&lt;/strong> button above to view the built-in slides feature.
&lt;/div>
&lt;/div>
&lt;p>Slides can be added in a few ways:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Create&lt;/strong> slides using Hugo Blox Builder&amp;rsquo;s &lt;a href="https://docs.hugoblox.com/reference/content-types/" target="_blank" rel="noopener">&lt;em>Slides&lt;/em>&lt;/a> feature and link using &lt;code>slides&lt;/code> parameter in the front matter of the talk file&lt;/li>
&lt;li>&lt;strong>Upload&lt;/strong> an existing slide deck to &lt;code>static/&lt;/code> and link using &lt;code>url_slides&lt;/code> parameter in the front matter of the talk file&lt;/li>
&lt;li>&lt;strong>Embed&lt;/strong> your slides (e.g. Google Slides) or presentation video on this page using &lt;a href="https://docs.hugoblox.com/reference/markdown/" target="_blank" rel="noopener">shortcodes&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>Further event details, including &lt;a href="https://docs.hugoblox.com/reference/markdown/" target="_blank" rel="noopener">page elements&lt;/a> such as image galleries, can be added to the body of this page.&lt;/p></description></item><item><title>Worker Harness</title><link>http://localhost:1313/project/worker-harness/</link><pubDate>Thu, 16 Jul 2026 00:00:00 +0000</pubDate><guid>http://localhost:1313/project/worker-harness/</guid><description>&lt;p>Worker Harness is an open-source control plane for running containerized GPU workers that self-register with an orchestrator over Tailscale or Headscale. It gives agents typed tools to discover workers, dispatch and monitor jobs, stream logs, and expose services through tunnels.&lt;/p>
&lt;p>The project focuses on reproducible, observable compute orchestration across a private worker fleet.&lt;/p></description></item><item><title>ARCOL: Aspect Ratio Constrained Orthogonal Layout</title><link>http://localhost:1313/arcol-aspect-ratio-constrained-orthogonal-layout/</link><pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate><guid>http://localhost:1313/arcol-aspect-ratio-constrained-orthogonal-layout/</guid><description>&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>Orthogonal layouts make graphs easier to read in domains such as software, process, and biological-network visualization. Existing algorithms optimize local layout quality, but offer little control over the overall shape—a problem when the same graph must fit a wide display, a tall screen, or a fixed interface region.&lt;/p>
&lt;h2 id="method">Method&lt;/h2>
&lt;p>ARCOL extends the Human-like Orthogonal Layout Algorithm (HOLA) with a soft aspect-ratio objective. It introduces aspect-ratio awareness during core stress minimization and the subsequent placement of tree components, encouraging a requested shape while retaining the geometric constraints and readability conventions of orthogonal drawing.&lt;/p>
&lt;h2 id="evaluation">Evaluation&lt;/h2>
&lt;p>The paper compares layouts across target aspect ratios and studies the resulting trade-offs in area, bends, crossings, and edge length. The evaluation shows that ARCOL can steer the global layout shape without treating aspect ratio as a purely post-processing operation.&lt;/p>
&lt;h2 id="limitations">Limitations&lt;/h2>
&lt;p>Aspect ratio is an additional layout objective, not a guarantee that every graph can meet an arbitrary target without compromises. Highly constrained graphs may still require trade-offs against compactness or other conventional quality measures.&lt;/p></description></item><item><title>EfficientMonoHair: Fast Strand-Level Reconstruction from Monocular Video via Multi-View Direction Fusion</title><link>http://localhost:1313/efficientmonohair-fast-strand-level-reconstruction-from-monocular-video-via-multi-view-direction-fusion/</link><pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate><guid>http://localhost:1313/efficientmonohair-fast-strand-level-reconstruction-from-monocular-video-via-multi-view-direction-fusion/</guid><description>&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>Strand-level hair reconstruction must balance global shape, fine directional detail, and runtime. Implicit methods can capture a coherent hair mass but lose individual strands, while explicit optimization can be accurate but expensive and difficult to scale.&lt;/p>
&lt;h2 id="method">Method&lt;/h2>
&lt;p>EfficientMonoHair combines an implicit neural representation with multi-view geometric fusion. It samples hair directions across views, aggregates them with a fusion-patch optimization, and enforces patch-level consistency to create a direction-aware outer-layer point cloud from which strands can be reconstructed.&lt;/p>
&lt;h2 id="evaluation">Evaluation&lt;/h2>
&lt;p>The work compares reconstruction quality and efficiency with existing monocular-video approaches across varied hairstyles. Its evaluation emphasizes the benefit of using multi-view direction evidence without the sequential optimization burden of earlier strand-growing pipelines.&lt;/p>
&lt;h2 id="limitations">Limitations&lt;/h2>
&lt;p>Very complex, heavily occluded, or highly curled hairstyles remain difficult because visible image evidence can be sparse or ambiguous. As with other monocular methods, reconstruction quality is coupled to capture coverage and input-image quality.&lt;/p></description></item><item><title>ClickAIXR: On-Device Multimodal Vision-Language Interaction with Real-World Objects in Extended Reality</title><link>http://localhost:1313/clickaixr-on-device-multimodal-vision-language-interaction-with-real-world-objects-in-extended-reality/</link><pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate><guid>http://localhost:1313/clickaixr-on-device-multimodal-vision-language-interaction-with-real-world-objects-in-extended-reality/</guid><description>&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>Vision-language assistants can answer questions about the physical world, but cloud inference introduces privacy, connectivity, and latency concerns. In XR, they must also know precisely which nearby object the user intends to ask about.&lt;/p>
&lt;h2 id="method">Method&lt;/h2>
&lt;p>ClickAIXR combines local vision-language inference with a controller-driven object-selection interface on an XR headset. Users place and adjust a 3D crop around a physical object using depth, width, and height controls; the selected visual context is then passed to an on-device VLM with the spoken or typed question.&lt;/p>
&lt;h2 id="evaluation">Evaluation&lt;/h2>
&lt;p>The paper evaluates the interaction on real-world objects, considering the accuracy of the selected context as well as the practical responsiveness of the on-device workflow. The system is positioned against cloud-based and gaze-based alternatives that leave privacy or referential ambiguity unresolved.&lt;/p>
&lt;h2 id="limitations">Limitations&lt;/h2>
&lt;p>The approach depends on the capabilities and compute budget of the headset-resident model, and careful selection remains necessary when objects are occluded, small, or spatially close together.&lt;/p></description></item><item><title>RaRa Clipper: A Clipper for Gaussian Splatting Based on Ray Tracer and Rasterizer</title><link>http://localhost:1313/rara-clipper-a-clipper-for-gaussian-splatting-based-on-ray-tracer-and-rasterizer/</link><pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate><guid>http://localhost:1313/rara-clipper-a-clipper-for-gaussian-splatting-based-on-ray-tracer-and-rasterizer/</guid><description>&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>Clipping is essential for inspecting interior structure in 3D scenes. For Gaussian Splatting, however, a primitive can contribute to many pixels across a volume, so simply discarding primitives at a clipping plane can produce imprecise boundaries and distracting artifacts.&lt;/p>
&lt;h2 id="method">Method&lt;/h2>
&lt;p>RaRa Clipper uses a hybrid renderer: rasterization provides efficient visibility handling, while ray tracing resolves the volumetric contributions needed for accurate clipping. The resulting pipeline is designed to preserve both the speed expected from splatting and the spatial fidelity needed at a cut boundary.&lt;/p>
&lt;h2 id="evaluation">Evaluation&lt;/h2>
&lt;p>The paper compares RaRa Clipper with hard clipping across a set of clipping scenarios, combining image-based measures with participant feedback. The evaluation focuses on the visual clarity of the cut, preservation of surrounding context, and dataset-dependent preferences.&lt;/p>
&lt;h2 id="limitations">Limitations&lt;/h2>
&lt;p>Clipping quality remains dependent on the underlying Gaussian representation and viewing configuration. The work also identifies cases where retaining contextual background or choosing the right clipping configuration requires further user control.&lt;/p></description></item><item><title>S2D: Sparse-To-Dense Keymask Distillation for Unsupervised Video Instance Segmentation</title><link>http://localhost:1313/s2d-sparse-to-dense-keymask-distillation-for-unsupervised-video-instance-segmentation/</link><pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate><guid>http://localhost:1313/s2d-sparse-to-dense-keymask-distillation-for-unsupervised-video-instance-segmentation/</guid><description/></item><item><title>A Survey on Quality Metrics for Text-to-Image Generation</title><link>http://localhost:1313/a-survey-on-quality-metrics-for-text-to-image-generation/</link><pubDate>Wed, 01 Oct 2025 00:00:00 +0000</pubDate><guid>http://localhost:1313/a-survey-on-quality-metrics-for-text-to-image-generation/</guid><description>&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>Text-to-image systems must be judged on more than photorealism: an image can look plausible while failing to depict the requested objects, relationships, or style. Classical image-quality measures alone do not capture this joint visual-and-linguistic requirement.&lt;/p>
&lt;h2 id="method">Method&lt;/h2>
&lt;p>This survey organizes text-to-image evaluation metrics around two main criteria: compositional image quality and semantic consistency with the prompt. It reviews metric families, the datasets used to validate them, and how evaluation choices interact with the intended generation task.&lt;/p>
&lt;h2 id="evaluation">Evaluation&lt;/h2>
&lt;p>Beyond cataloguing metrics, the paper discusses the evidence behind them, surveys available evaluation datasets, and examines a selection of human-preference metrics in supplementary experiments. The result is a practical map of what a reported score can—and cannot—support.&lt;/p>
&lt;h2 id="limitations">Limitations&lt;/h2>
&lt;p>No single automatic metric captures all of human judgment. Metric selection remains task-dependent, and the survey emphasizes the need to combine appropriate automatic measures with carefully designed human evaluation when stakes are high.&lt;/p></description></item><item><title>CutS3D: Cutting Semantics in 3D for 2D Unsupervised Instance Segmentation</title><link>http://localhost:1313/cuts3d-cutting-semantics-in-3d-for-2d-unsupervised-instance-segmentation/</link><pubDate>Wed, 01 Oct 2025 00:00:00 +0000</pubDate><guid>http://localhost:1313/cuts3d-cutting-semantics-in-3d-for-2d-unsupervised-instance-segmentation/</guid><description/></item><item><title>Attention-Guided Masked Autoencoders for Learning Image Representations</title><link>http://localhost:1313/attention-guided-masked-autoencoders-for-learning-image-representations/</link><pubDate>Sat, 01 Feb 2025 00:00:00 +0000</pubDate><guid>http://localhost:1313/attention-guided-masked-autoencoders-for-learning-image-representations/</guid><description/></item><item><title>HPSCAN: Human Perception-Based Scattered Data Clustering</title><link>http://localhost:1313/hpscan-human-perception-based-scattered-data-clustering/</link><pubDate>Sat, 01 Feb 2025 00:00:00 +0000</pubDate><guid>http://localhost:1313/hpscan-human-perception-based-scattered-data-clustering/</guid><description>&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>Conventional clustering algorithms optimize mathematical criteria that do not necessarily match how people perceive groups in a scatterplot. HPSCAN asks a different question: which separations would human viewers recognize as clusters?&lt;/p>
&lt;h2 id="method">Method&lt;/h2>
&lt;p>The authors crowdsourced cluster annotations for 7,320 bivariate datasets from 384 participants. HPSCAN learns from these labels using a modified PointNet++ architecture that receives the scattered point coordinates directly, avoiding the resolution and rendering choices of image-based scatterplot analysis.&lt;/p>
&lt;h2 id="evaluation">Evaluation&lt;/h2>
&lt;p>The work reports annotation statistics and compares HPSCAN’s separations with human judgments on held-out and real-world data. This makes the target of evaluation perceptual agreement, rather than only agreement with a geometric clustering heuristic.&lt;/p>
&lt;h2 id="limitations">Limitations&lt;/h2>
&lt;p>The model is trained on bivariate scatterplots and reflects the judgments represented in the collected dataset. Extending this notion of perceptual clustering to other visual encodings or higher-dimensional interaction contexts remains an open direction.&lt;/p></description></item><item><title>Unsupervised Semantic Segmentation Through Depth-Guided Feature Correlation and Sampling</title><link>http://localhost:1313/depthg/</link><pubDate>Tue, 27 Feb 2024 00:00:00 +0000</pubDate><guid>http://localhost:1313/depthg/</guid><description/></item><item><title>Deep Learning in Volume Rendering</title><link>http://localhost:1313/deep-learning-in-volume-rendering/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>http://localhost:1313/deep-learning-in-volume-rendering/</guid><description/></item><item><title>Blog with Jupyter Notebooks!</title><link>http://localhost:1313/post/blog-with-jupyter/</link><pubDate>Sat, 04 Nov 2023 00:00:00 +0000</pubDate><guid>http://localhost:1313/post/blog-with-jupyter/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">IPython.core.display&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">Image&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Image&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;https://www.python.org/static/community_logos/python-logo-master-v3-TM-flattened.png&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="png" srcset="
/post/blog-with-jupyter/output_1_0_hu10436241876710648818.webp 400w,
/post/blog-with-jupyter/output_1_0_hu9583391371614247630.webp 760w,
/post/blog-with-jupyter/output_1_0_hu10083326660053564461.webp 1200w"
src="http://localhost:1313/post/blog-with-jupyter/output_1_0_hu10436241876710648818.webp"
width="601"
height="203"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Welcome to Academic!&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;pre>&lt;code>Welcome to Academic!
&lt;/code>&lt;/pre>
&lt;h2 id="organize-your-notebooks">Organize your notebooks&lt;/h2>
&lt;p>Place the notebooks that you would like to publish in a &lt;code>notebooks&lt;/code> folder at the root of your website.&lt;/p>
&lt;h2 id="import-the-notebooks-into-your-site">Import the notebooks into your site&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">pipx install academic
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">academic import &lt;span class="s1">&amp;#39;notebooks/**.ipynb&amp;#39;&lt;/span> content/post/ --verbose
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The notebooks will be published to the folder you specify above. In this case, they will be published to your &lt;code>content/post/&lt;/code> folder.&lt;/p></description></item><item><title>Leveraging Self-Supervised Vision Transformers for Segmentation-based Transfer Function Design</title><link>http://localhost:1313/vit-tf/</link><pubDate>Sun, 03 Sep 2023 00:00:00 +0000</pubDate><guid>http://localhost:1313/vit-tf/</guid><description>&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>Transfer functions determine which structures are visible in a volume rendering, yet designing them from intensity and gradient values is often tedious and unintuitive. The goal is to let users specify structures directly rather than manually engineer a mapping in feature space.&lt;/p>
&lt;h2 id="method">Method&lt;/h2>
&lt;p>The workflow exposes a slice viewer in which a user marks a structure of interest. A self-supervised, pre-trained vision transformer supplies high-level features; similar features are selected across the volume to form a segmentation that drives the transfer function. Because the method relies on pre-trained features rather than per-volume training, edits can be reflected immediately.&lt;/p>
&lt;h2 id="evaluation">Evaluation&lt;/h2>
&lt;p>The paper demonstrates annotation-guided transfer-function design on volume data and evaluates whether feature-based selections isolate target structures from only a small amount of user input. It also contrasts the interactive workflow with previous learning-based approaches that require costly optimization for each volume.&lt;/p>
&lt;h2 id="limitations">Limitations&lt;/h2>
&lt;p>The result depends on the discriminative power of the pre-trained features and on the ambiguity of the selected structure. Sparse annotations are powerful, but may need refinement when visually similar structures should receive different optical properties.&lt;/p></description></item><item><title>Monocular Depth Decomposition of Semi-Transparent Volume Renderings</title><link>http://localhost:1313/stdepth/</link><pubDate>Mon, 27 Jun 2022 00:00:00 +0000</pubDate><guid>http://localhost:1313/stdepth/</guid><description>&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>Depth is ambiguous in semi-transparent volume rendering: several structures can contribute to one pixel, and there may be no single visible surface. A useful depth estimate nevertheless enables labels, geometry, and additional shading to be composed with a rendering.&lt;/p>
&lt;h2 id="method">Method&lt;/h2>
&lt;p>The work studies depth definitions for volume-rendered images and adapts monocular depth networks to predict a layered decomposition. From one RGB rendering, the model estimates front semi-transparent content, the depth of a surface of interest, and structures behind it; the layers can be recomposited with new scene elements.&lt;/p>
&lt;h2 id="evaluation">Evaluation&lt;/h2>
&lt;p>The evaluation compares depth-estimation approaches across different opacity and illumination settings, and assesses the additional color and opacity predictions needed for layered reconstruction. The resulting layers support downstream re-composition tasks rather than serving only as a scalar depth map.&lt;/p>
&lt;h2 id="limitations">Limitations&lt;/h2>
&lt;p>The decomposition is learned from rendered imagery and inherits ambiguities from the rendering setup. It is therefore most useful as an image-space representation for interactive composition, not as a replacement for the original volumetric scene model.&lt;/p></description></item><item><title>Differentiable Electron Microscopy Simulation: Methods and Applications for Visualization</title><link>http://localhost:1313/difftem/</link><pubDate>Sun, 26 Jun 2022 00:00:00 +0000</pubDate><guid>http://localhost:1313/difftem/</guid><description>&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>Electron-microscopy data are expensive to acquire, noisy, and difficult to annotate. Faithful simulation can supply controlled ground truth, but conventional simulators are often too slow or too rigid to support optimization and learning.&lt;/p>
&lt;h2 id="method">Method&lt;/h2>
&lt;p>DiffTEM simulates micrographs from atomistic models at a scale suitable for many viral particles. Both the deterministic image-formation stages and the stochastic signal-and-noise stages are differentiable, allowing gradients to flow from an image-space objective back to simulation and detector parameters.&lt;/p>
&lt;h2 id="evaluation">Evaluation&lt;/h2>
&lt;p>The paper demonstrates two uses of differentiability: estimating detector parameters automatically and using simulated data to support denoising of real microscopy observations. It also evaluates the simulator’s visual plausibility and scalability relative to previous simulation approaches.&lt;/p>
&lt;h2 id="limitations">Limitations&lt;/h2>
&lt;p>A simulator remains an approximation of a complex physical acquisition process. Its usefulness depends on how well the modeled specimen, microscope, and noise assumptions match the data to which it is applied.&lt;/p></description></item><item><title>Finding Nano-Ötzi: Cryo-Electron Tomography Visualization Guided by Learned Segmentation</title><link>http://localhost:1313/nano-oetzi/</link><pubDate>Tue, 06 Apr 2021 00:00:00 +0000</pubDate><guid>http://localhost:1313/nano-oetzi/</guid><description>&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>Cryo-electron tomography contains valuable nanoscale structure but suffers from severe noise, making direct volume rendering and transfer-function design difficult. Experts need a way to expose meaningful structure without manually tuning a complex visual mapping for every dataset.&lt;/p>
&lt;h2 id="method">Method&lt;/h2>
&lt;p>Nano-Ötzi decomposes visual mapping into two tasks. A semi-supervised pipeline turns sparse user input into soft segmentation through pseudo labels and a stronger classifier; an iterative thresholding method then combines raw-data detail with soft labels to estimate opacity. The result is a volume-rendering workflow tailored to noisy cryo-ET data.&lt;/p>
&lt;h2 id="evaluation">Evaluation&lt;/h2>
&lt;p>The paper demonstrates the pipeline on challenging cryo-ET data and evaluates its individual components. Feedback from two domain experts complements the technical assessment by examining whether the resulting visualizations support real scientific interpretation.&lt;/p>
&lt;h2 id="limitations">Limitations&lt;/h2>
&lt;p>The learned segmentation stage benefits from substantial pre-training data, and sparse labels may not resolve every ambiguous structure. The system is designed to support expert exploration rather than remove the need for domain judgment.&lt;/p></description></item><item><title>Property-Based Testing for Visualization Development</title><link>http://localhost:1313/pbtvis/</link><pubDate>Mon, 15 Mar 2021 00:00:00 +0000</pubDate><guid>http://localhost:1313/pbtvis/</guid><description>&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>Visualization software can expose many rendering parameters, while conventional regression tests usually cover only a small set of hand-picked configurations. Bugs may therefore remain hidden until a particular combination of values is encountered.&lt;/p>
&lt;h2 id="method">Method&lt;/h2>
&lt;p>The work applies property-based testing to visualization development. It generates many parameter settings automatically, renders paired configurations, and checks whether the expected visual effect of a controlled parameter change is present. These properties can be defined alongside an algorithm, making the approach compatible with test-driven development.&lt;/p>
&lt;h2 id="evaluation">Evaluation&lt;/h2>
&lt;p>The approach is integrated into Inviwo’s regression-testing infrastructure and exercised through visualization use cases. The examples show how automatically generated parameter combinations can expose errors that are unlikely to be covered by fixed image baselines alone.&lt;/p>
&lt;h2 id="limitations">Limitations&lt;/h2>
&lt;p>A property-based test is only as useful as the property it encodes. Designing robust visual assertions and diagnosing a failed generated case still require developer insight, especially when rendering differences are subtle or data-dependent.&lt;/p></description></item><item><title>Deep Volumetric Ambient Occlusion</title><link>http://localhost:1313/dvao/</link><pubDate>Fri, 01 Jan 2021 00:00:00 +0000</pubDate><guid>http://localhost:1313/dvao/</guid><description>&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>Ambient occlusion improves depth perception in direct volume rendering, but high-quality volumetric illumination can be expensive to compute. DVAO investigates whether a learned model can precompute an ambient-occlusion volume for the current transfer function, leaving view changes interactive.&lt;/p>
&lt;h2 id="method">Method&lt;/h2>
&lt;p>DVAO is a 3D convolutional encoder–decoder that takes a scalar volume and transfer-function context and predicts one ambient-occlusion value per voxel. The strongest variant &lt;strong>preclassifies&lt;/strong> the volume with transfer-function opacity, giving the network a spatially aligned, implicit representation of the global transfer function from its first layer.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Diagram of the selected preclassified DVAO encoder–decoder architecture" srcset="
/dvao/method_hu16237650332852266575.webp 400w,
/dvao/method_hu14055903595399580284.webp 760w,
/dvao/method_hu3313981667586537401.webp 1200w"
src="http://localhost:1313/dvao/method_hu16237650332852266575.webp"
width="760"
height="241"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>&lt;em>The selected implicit/preclassified strategy combines opacity and intensity volumes before the encoder and predicts a 128³ ambient-occlusion volume. Adapted from Fig. 6 of the arXiv version.&lt;/em>&lt;/p>
&lt;h2 id="evaluation">Evaluation&lt;/h2>
&lt;ul>
&lt;li>Across 30 training runs covering six transfer-function injection strategies and five loss functions, the implicit preclassified input performed best; the selected DSSIM-2D + MSE model reached &lt;strong>SSIM 0.875&lt;/strong> and &lt;strong>MSE 0.008&lt;/strong> on held-out data.&lt;/li>
&lt;li>The default 16-filter model required &lt;strong>411 ms&lt;/strong> per transfer-function update on an RTX 2070. It is not evaluated every frame, so camera interaction remains responsive after the occlusion volume is produced.&lt;/li>
&lt;li>Although trained only on human head CT data, it obtained SSIM scores of &lt;strong>0.786&lt;/strong> on mouse micro-CT, &lt;strong>0.866&lt;/strong> on chameleon CT, &lt;strong>0.751&lt;/strong> on MRI, and &lt;strong>0.869&lt;/strong> on electron microscopy data.&lt;/li>
&lt;/ul>
&lt;h2 id="limitations">Limitations&lt;/h2>
&lt;p>The prototype operates on 128³ volumes and needs substantial memory for 3D CNN inference. It was a research exploration of learned volumetric illumination rather than a replacement for optimized algorithmic ambient-occlusion methods.&lt;/p></description></item><item><title>Welcome to Hugo Blox Builder, the website builder for Hugo</title><link>http://localhost:1313/post/getting-started/</link><pubDate>Sun, 13 Dec 2020 00:00:00 +0000</pubDate><guid>http://localhost:1313/post/getting-started/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">libr&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;hello&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="overview">Overview&lt;/h2>
&lt;ol>
&lt;li>The Wowchemy website builder for Hugo, along with its starter templates, is designed for professional creators, educators, and teams/organizations - although it can be used to create any kind of site&lt;/li>
&lt;li>The template can be modified and customised to suit your needs. It&amp;rsquo;s a good platform for anyone looking to take control of their data and online identity whilst having the convenience to start off with a &lt;strong>no-code solution (write in Markdown and customize with YAML parameters)&lt;/strong> and having &lt;strong>flexibility to later add even deeper personalization with HTML and CSS&lt;/strong>&lt;/li>
&lt;li>You can work with all your favourite tools and apps with hundreds of plugins and integrations to speed up your workflows, interact with your readers, and much more&lt;/li>
&lt;/ol>
&lt;p>&lt;a href="https://hugoblox.com" target="_blank" rel="noopener">
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="https://raw.githubusercontent.com/wowchemy/wowchemy-hugo-modules/main/starters/academic/preview.png" alt="The template is mobile first with a responsive design to ensure that your site looks stunning on every device." loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/a>&lt;/p>
&lt;h2 id="get-started">Get Started&lt;/h2>
&lt;ul>
&lt;li>👉 &lt;a href="https://hugoblox.com/templates/" target="_blank" rel="noopener">&lt;strong>Create a new site&lt;/strong>&lt;/a>&lt;/li>
&lt;li>📚 &lt;a href="https://docs.hugoblox.com/" target="_blank" rel="noopener">&lt;strong>Personalize your site&lt;/strong>&lt;/a>&lt;/li>
&lt;li>💬 &lt;a href="https://discord.gg/z8wNYzb" target="_blank" rel="noopener">Chat with the &lt;strong>Wowchemy community&lt;/strong>&lt;/a> or &lt;a href="https://discourse.gohugo.io" target="_blank" rel="noopener">&lt;strong>Hugo community&lt;/strong>&lt;/a>&lt;/li>
&lt;li>🐦 Twitter: &lt;a href="https://twitter.com/wowchemy" target="_blank" rel="noopener">@wowchemy&lt;/a> &lt;a href="https://twitter.com/GeorgeCushen" target="_blank" rel="noopener">@GeorgeCushen&lt;/a> &lt;a href="https://twitter.com/search?q=%23MadeWithWowchemy&amp;amp;src=typed_query" target="_blank" rel="noopener">#MadeWithWowchemy&lt;/a>&lt;/li>
&lt;li>💡 &lt;a href="https://github.com/HugoBlox/hugo-blox-builder/issues" target="_blank" rel="noopener">Request a &lt;strong>feature&lt;/strong> or report a &lt;strong>bug&lt;/strong> for &lt;em>Wowchemy&lt;/em>&lt;/a>&lt;/li>
&lt;li>⬆️ &lt;strong>Updating Wowchemy?&lt;/strong> View the &lt;a href="https://docs.hugoblox.com/hugo-tutorials/update/" target="_blank" rel="noopener">Update Tutorial&lt;/a> and &lt;a href="https://hugoblox.com/updates/" target="_blank" rel="noopener">Release Notes&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="crowd-funded-open-source-software">Crowd-funded open-source software&lt;/h2>
&lt;p>To help us develop this template and software sustainably under the MIT license, we ask all individuals and businesses that use it to help support its ongoing maintenance and development via sponsorship.&lt;/p>
&lt;h3 id="-click-here-to-become-a-sponsor-and-help-support-wowchemys-future-httpshugobloxcomsponsor">&lt;a href="https://hugoblox.com/sponsor/" target="_blank" rel="noopener">❤️ Click here to become a sponsor and help support Wowchemy&amp;rsquo;s future ❤️&lt;/a>&lt;/h3>
&lt;p>As a token of appreciation for sponsoring, you can &lt;strong>unlock &lt;a href="https://hugoblox.com/sponsor/" target="_blank" rel="noopener">these&lt;/a> awesome rewards and extra features 🦄✨&lt;/strong>&lt;/p>
&lt;h2 id="ecosystem">Ecosystem&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://github.com/GetRD/academic-file-converter" target="_blank" rel="noopener">Hugo Academic CLI&lt;/a>:&lt;/strong> Automatically import publications from BibTeX&lt;/li>
&lt;/ul>
&lt;h2 id="inspiration">Inspiration&lt;/h2>
&lt;p>&lt;a href="https://academic-demo.netlify.com/" target="_blank" rel="noopener">Check out the latest &lt;strong>demo&lt;/strong>&lt;/a> of what you&amp;rsquo;ll get in less than 10 minutes, or &lt;a href="https://hugoblox.com/user-stories/" target="_blank" rel="noopener">view the &lt;strong>showcase&lt;/strong>&lt;/a> of personal, project, and business sites.&lt;/p>
&lt;h2 id="features">Features&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Page builder&lt;/strong> - Create &lt;em>anything&lt;/em> with &lt;a href="https://docs.hugoblox.com/page-builder/" target="_blank" rel="noopener">&lt;strong>widgets&lt;/strong>&lt;/a> and &lt;a href="https://docs.hugoblox.com/content/writing-markdown-latex/" target="_blank" rel="noopener">&lt;strong>elements&lt;/strong>&lt;/a>&lt;/li>
&lt;li>&lt;strong>Edit any type of content&lt;/strong> - Blog posts, publications, talks, slides, projects, and more!&lt;/li>
&lt;li>&lt;strong>Create content&lt;/strong> in &lt;a href="https://docs.hugoblox.com/content/writing-markdown-latex/" target="_blank" rel="noopener">&lt;strong>Markdown&lt;/strong>&lt;/a>, &lt;a href="https://docs.hugoblox.com/import/jupyter/" target="_blank" rel="noopener">&lt;strong>Jupyter&lt;/strong>&lt;/a>, or &lt;a href="https://docs.hugoblox.com/install-locally/" target="_blank" rel="noopener">&lt;strong>RStudio&lt;/strong>&lt;/a>&lt;/li>
&lt;li>&lt;strong>Plugin System&lt;/strong> - Fully customizable &lt;a href="https://docs.hugoblox.com/customization/" target="_blank" rel="noopener">&lt;strong>color&lt;/strong> and &lt;strong>font themes&lt;/strong>&lt;/a>&lt;/li>
&lt;li>&lt;strong>Display Code and Math&lt;/strong> - Code highlighting and &lt;a href="https://en.wikibooks.org/wiki/LaTeX/Mathematics" target="_blank" rel="noopener">LaTeX math&lt;/a> supported&lt;/li>
&lt;li>&lt;strong>Integrations&lt;/strong> - &lt;a href="https://analytics.google.com" target="_blank" rel="noopener">Google Analytics&lt;/a>, &lt;a href="https://disqus.com" target="_blank" rel="noopener">Disqus commenting&lt;/a>, Maps, Contact Forms, and more!&lt;/li>
&lt;li>&lt;strong>Beautiful Site&lt;/strong> - Simple and refreshing one page design&lt;/li>
&lt;li>&lt;strong>Industry-Leading SEO&lt;/strong> - Help get your website found on search engines and social media&lt;/li>
&lt;li>&lt;strong>Media Galleries&lt;/strong> - Display your images and videos with captions in a customizable gallery&lt;/li>
&lt;li>&lt;strong>Mobile Friendly&lt;/strong> - Look amazing on every screen with a mobile friendly version of your site&lt;/li>
&lt;li>&lt;strong>Multi-language&lt;/strong> - 34+ language packs including English, 中文, and Português&lt;/li>
&lt;li>&lt;strong>Multi-user&lt;/strong> - Each author gets their own profile page&lt;/li>
&lt;li>&lt;strong>Privacy Pack&lt;/strong> - Assists with GDPR&lt;/li>
&lt;li>&lt;strong>Stand Out&lt;/strong> - Bring your site to life with animation, parallax backgrounds, and scroll effects&lt;/li>
&lt;li>&lt;strong>One-Click Deployment&lt;/strong> - No servers. No databases. Only files.&lt;/li>
&lt;/ul>
&lt;h2 id="themes">Themes&lt;/h2>
&lt;p>Wowchemy and its templates come with &lt;strong>automatic day (light) and night (dark) mode&lt;/strong> built-in. Alternatively, visitors can choose their preferred mode - click the moon icon in the top right of the &lt;a href="https://academic-demo.netlify.com/" target="_blank" rel="noopener">Demo&lt;/a> to see it in action! Day/night mode can also be disabled by the site admin in &lt;code>params.toml&lt;/code>.&lt;/p>
&lt;p>&lt;a href="https://docs.hugoblox.com/customization" target="_blank" rel="noopener">Choose a stunning &lt;strong>theme&lt;/strong> and &lt;strong>font&lt;/strong>&lt;/a> for your site. Themes are fully customizable.&lt;/p>
&lt;h2 id="license">License&lt;/h2>
&lt;p>Copyright 2016-present &lt;a href="https://georgecushen.com" target="_blank" rel="noopener">George Cushen&lt;/a>.&lt;/p>
&lt;p>Released under the &lt;a href="https://github.com/HugoBlox/hugo-blox-builder/blob/master/LICENSE.md" target="_blank" rel="noopener">MIT&lt;/a> license.&lt;/p></description></item><item><title>Inviwo Visualization Framework</title><link>http://localhost:1313/project/inviwo/</link><pubDate>Thu, 27 Aug 2020 00:00:00 +0000</pubDate><guid>http://localhost:1313/project/inviwo/</guid><description>&lt;p>Inviwo is an open-source framework for interactive visualization of scientific
data written in C++ and OpenGL. Inviwo enables visualization of geometry,
scalar fields, vector fields, molecules and more. I have contributed to the
core framework, text and video documentation, testability, CI, Python integration,
as well as several modules to introduce deep neural networks to the framework.&lt;/p></description></item><item><title>torchvtk</title><link>http://localhost:1313/project/torchvtk/</link><pubDate>Sat, 01 Aug 2020 00:00:00 +0000</pubDate><guid>http://localhost:1313/project/torchvtk/</guid><description>&lt;p>torchvtk is a PyTorch-based framework for efficient loading, caching and
transformation of volumetric data, addressing common challenges like IO
bottlenecks. I started this project with a colleague and used it for my
research. The project is no longer in development as many alternatives
emerged in the recent years.&lt;/p></description></item><item><title>Writing technical content in Markdown</title><link>http://localhost:1313/post/writing-technical-content/</link><pubDate>Fri, 12 Jul 2019 00:00:00 +0000</pubDate><guid>http://localhost:1313/post/writing-technical-content/</guid><description>&lt;p>Hugo Blox Builder is designed to give technical content creators a seamless experience. You can focus on the content and Wowchemy handles the rest.&lt;/p>
&lt;p>&lt;strong>Highlight your code snippets, take notes on math classes, and draw diagrams from textual representation.&lt;/strong>&lt;/p>
&lt;p>On this page, you&amp;rsquo;ll find some examples of the types of technical content that can be rendered with Wowchemy.&lt;/p>
&lt;h2 id="examples">Examples&lt;/h2>
&lt;h3 id="code">Code&lt;/h3>
&lt;p>Wowchemy supports a Markdown extension for highlighting code syntax. You can customize the styles under the &lt;code>syntax_highlighter&lt;/code> option in your &lt;code>config/_default/params.yaml&lt;/code> file.&lt;/p>
&lt;pre>&lt;code>```python
import pandas as pd
data = pd.read_csv(&amp;quot;data.csv&amp;quot;)
data.head()
```
&lt;/code>&lt;/pre>
&lt;p>renders as&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">pandas&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">pd&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">data&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pd&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">read_csv&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;data.csv&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">data&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">head&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="mindmaps">Mindmaps&lt;/h3>
&lt;p>Wowchemy supports a Markdown extension for mindmaps.&lt;/p>
&lt;p>Simply insert a Markdown &lt;code>markmap&lt;/code> code block and optionally set the height of the mindmap as shown in the example below.&lt;/p>
&lt;p>A simple mindmap defined as a Markdown list:&lt;/p>
&lt;div class="highlight">
&lt;pre class="chroma">
&lt;code>
```markmap {height="200px"}
- Hugo Modules
- wowchemy
- blox-plugins-netlify
- blox-plugins-netlify-cms
- blox-plugins-reveal
```
&lt;/code>
&lt;/pre>
&lt;/div>
&lt;p>renders as&lt;/p>
&lt;div class="markmap" style="height: 200px;">
&lt;pre>- Hugo Modules
- wowchemy
- blox-plugins-netlify
- blox-plugins-netlify-cms
- blox-plugins-reveal&lt;/pre>
&lt;/div>
&lt;p>A more advanced mindmap with formatting, code blocks, and math:&lt;/p>
&lt;div class="highlight">
&lt;pre class="chroma">
&lt;code>
```markmap
- Mindmaps
- Links
- [Wowchemy Docs](https://docs.hugoblox.com/)
- [Discord Community](https://discord.gg/z8wNYzb)
- [GitHub](https://github.com/HugoBlox/hugo-blox-builder)
- Features
- Markdown formatting
- **inline** ~~text~~ *styles*
- multiline
text
- `inline code`
-
```js
console.log('hello');
console.log('code block');
```
- Math: $x = {-b \pm \sqrt{b^2-4ac} \over 2a}$
```
&lt;/code>
&lt;/pre>
&lt;/div>
&lt;p>renders as&lt;/p>
&lt;div class="markmap" style="height: 500px;">
&lt;pre>- Mindmaps
- Links
- [Wowchemy Docs](https://docs.hugoblox.com/)
- [Discord Community](https://discord.gg/z8wNYzb)
- [GitHub](https://github.com/HugoBlox/hugo-blox-builder)
- Features
- Markdown formatting
- **inline** ~~text~~ *styles*
- multiline
text
- `inline code`
-
```js
console.log('hello');
console.log('code block');
```
- Math: $x = {-b \pm \sqrt{b^2-4ac} \over 2a}$&lt;/pre>
&lt;/div>
&lt;h3 id="charts">Charts&lt;/h3>
&lt;p>Wowchemy supports the popular &lt;a href="https://plot.ly/" target="_blank" rel="noopener">Plotly&lt;/a> format for interactive charts.&lt;/p>
&lt;p>Save your Plotly JSON in your page folder, for example &lt;code>line-chart.json&lt;/code>, and then add the &lt;code>{{&amp;lt; chart data=&amp;quot;line-chart&amp;quot; &amp;gt;}}&lt;/code> shortcode where you would like the chart to appear.&lt;/p>
&lt;p>Demo:&lt;/p>
&lt;div id="chart-649823715" class="chart">&lt;/div>
&lt;script>
(function() {
let a = setInterval( function() {
if ( typeof window.Plotly === 'undefined' ) {
return;
}
clearInterval( a );
Plotly.d3.json("./line-chart.json", function(chart) {
Plotly.plot('chart-649823715', chart.data, chart.layout, {responsive: true});
});
}, 500 );
})();
&lt;/script>
&lt;p>You might also find the &lt;a href="http://plotly-json-editor.getforge.io/" target="_blank" rel="noopener">Plotly JSON Editor&lt;/a> useful.&lt;/p>
&lt;h3 id="math">Math&lt;/h3>
&lt;p>Wowchemy supports a Markdown extension for $\LaTeX$ math. You can enable this feature by toggling the &lt;code>math&lt;/code> option in your &lt;code>config/_default/params.yaml&lt;/code> file.&lt;/p>
&lt;p>To render &lt;em>inline&lt;/em> or &lt;em>block&lt;/em> math, wrap your LaTeX math with &lt;code>{{&amp;lt; math &amp;gt;}}$...${{&amp;lt; /math &amp;gt;}}&lt;/code> or &lt;code>{{&amp;lt; math &amp;gt;}}$$...$${{&amp;lt; /math &amp;gt;}}&lt;/code>, respectively. (We wrap the LaTeX math in the Wowchemy &lt;em>math&lt;/em> shortcode to prevent Hugo rendering our math as Markdown. The &lt;em>math&lt;/em> shortcode is new in v5.5-dev.)&lt;/p>
&lt;p>Example &lt;strong>math block&lt;/strong>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-latex" data-lang="latex">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">{{&lt;/span>&amp;lt; math &amp;gt;&lt;span class="nb">}}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="sb">$$&lt;/span>&lt;span class="nb">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">&lt;/span>&lt;span class="nv">\gamma&lt;/span>&lt;span class="nb">_{n} &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\frac&lt;/span>&lt;span class="nb">{ &lt;/span>&lt;span class="nv">\left&lt;/span>&lt;span class="nb"> | &lt;/span>&lt;span class="nv">\left&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nv">\mathbf&lt;/span>&lt;span class="nb"> x_{n} &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\mathbf&lt;/span>&lt;span class="nb"> x_{n&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">} &lt;/span>&lt;span class="nv">\right&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">)&lt;/span>&lt;span class="nb">^T &lt;/span>&lt;span class="nv">\left&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="nv">\nabla&lt;/span>&lt;span class="nb"> F &lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nv">\mathbf&lt;/span>&lt;span class="nb"> x_{n}&lt;/span>&lt;span class="o">)&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\nabla&lt;/span>&lt;span class="nb"> F &lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nv">\mathbf&lt;/span>&lt;span class="nb"> x_{n&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">}&lt;/span>&lt;span class="o">)&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\right&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">]&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\right&lt;/span>&lt;span class="nb"> |}{&lt;/span>&lt;span class="nv">\left&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\|\nabla&lt;/span>&lt;span class="nb"> F&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nv">\mathbf&lt;/span>&lt;span class="nb">{x}_{n}&lt;/span>&lt;span class="o">)&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\nabla&lt;/span>&lt;span class="nb"> F&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nv">\mathbf&lt;/span>&lt;span class="nb">{x}_{n&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">}&lt;/span>&lt;span class="o">)&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\right&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\|&lt;/span>&lt;span class="nb">^&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="nb">}
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">&lt;/span>&lt;span class="s">$$&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">{{&lt;/span>&amp;lt; /math &amp;gt;&lt;span class="nb">}}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
$$\gamma_{n} = \frac{ \left | \left (\mathbf x_{n} - \mathbf x_{n-1} \right )^T \left [\nabla F (\mathbf x_{n}) - \nabla F (\mathbf x_{n-1}) \right ] \right |}{\left \|\nabla F(\mathbf{x}_{n}) - \nabla F(\mathbf{x}_{n-1}) \right \|^2}$$
&lt;p>Example &lt;strong>inline math&lt;/strong> &lt;code>{{&amp;lt; math &amp;gt;}}$\nabla F(\mathbf{x}_{n})${{&amp;lt; /math &amp;gt;}}&lt;/code> renders as
$\nabla F(\mathbf{x}_{n})$.&lt;/p>
&lt;p>Example &lt;strong>multi-line math&lt;/strong> using the math linebreak (&lt;code>\\&lt;/code>):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-latex" data-lang="latex">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">{{&lt;/span>&amp;lt; math &amp;gt;&lt;span class="nb">}}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="sb">$$&lt;/span>&lt;span class="nb">f&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nb">k;p_{&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="nb">}^{&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="nb">}&lt;/span>&lt;span class="o">)&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\begin&lt;/span>&lt;span class="nb">{cases}p_{&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="nb">}^{&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="nb">} &amp;amp; &lt;/span>&lt;span class="nv">\text&lt;/span>&lt;span class="nb">{if }k&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">, &lt;/span>&lt;span class="nv">\\&lt;/span>&lt;span class="nb">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nb">p_{&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="nb">}^{&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="nb">} &amp;amp; &lt;/span>&lt;span class="nv">\text&lt;/span>&lt;span class="nb">{if }k&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="nb">.&lt;/span>&lt;span class="nv">\end&lt;/span>&lt;span class="nb">{cases}&lt;/span>&lt;span class="s">$$&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">{{&lt;/span>&amp;lt; /math &amp;gt;&lt;span class="nb">}}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
$$
f(k;p_{0}^{*}) = \begin{cases}p_{0}^{*} &amp; \text{if }k=1, \\
1-p_{0}^{*} &amp; \text{if }k=0.\end{cases}
$$
&lt;h3 id="diagrams">Diagrams&lt;/h3>
&lt;p>Wowchemy supports a Markdown extension for diagrams. You can enable this feature by toggling the &lt;code>diagram&lt;/code> option in your &lt;code>config/_default/params.toml&lt;/code> file or by adding &lt;code>diagram: true&lt;/code> to your page front matter.&lt;/p>
&lt;p>An example &lt;strong>flowchart&lt;/strong>:&lt;/p>
&lt;pre>&lt;code>```mermaid
graph TD
A[Hard] --&amp;gt;|Text| B(Round)
B --&amp;gt; C{Decision}
C --&amp;gt;|One| D[Result 1]
C --&amp;gt;|Two| E[Result 2]
```
&lt;/code>&lt;/pre>
&lt;p>renders as&lt;/p>
&lt;div class="mermaid">graph TD
A[Hard] -->|Text| B(Round)
B --> C{Decision}
C -->|One| D[Result 1]
C -->|Two| E[Result 2]
&lt;/div>
&lt;p>An example &lt;strong>sequence diagram&lt;/strong>:&lt;/p>
&lt;pre>&lt;code>```mermaid
sequenceDiagram
Alice-&amp;gt;&amp;gt;John: Hello John, how are you?
loop Healthcheck
John-&amp;gt;&amp;gt;John: Fight against hypochondria
end
Note right of John: Rational thoughts!
John--&amp;gt;&amp;gt;Alice: Great!
John-&amp;gt;&amp;gt;Bob: How about you?
Bob--&amp;gt;&amp;gt;John: Jolly good!
```
&lt;/code>&lt;/pre>
&lt;p>renders as&lt;/p>
&lt;div class="mermaid">sequenceDiagram
Alice->>John: Hello John, how are you?
loop Healthcheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts!
John-->>Alice: Great!
John->>Bob: How about you?
Bob-->>John: Jolly good!
&lt;/div>
&lt;p>An example &lt;strong>Gantt diagram&lt;/strong>:&lt;/p>
&lt;pre>&lt;code>```mermaid
gantt
section Section
Completed :done, des1, 2014-01-06,2014-01-08
Active :active, des2, 2014-01-07, 3d
Parallel 1 : des3, after des1, 1d
Parallel 2 : des4, after des1, 1d
Parallel 3 : des5, after des3, 1d
Parallel 4 : des6, after des4, 1d
```
&lt;/code>&lt;/pre>
&lt;p>renders as&lt;/p>
&lt;div class="mermaid">gantt
section Section
Completed :done, des1, 2014-01-06,2014-01-08
Active :active, des2, 2014-01-07, 3d
Parallel 1 : des3, after des1, 1d
Parallel 2 : des4, after des1, 1d
Parallel 3 : des5, after des3, 1d
Parallel 4 : des6, after des4, 1d
&lt;/div>
&lt;p>An example &lt;strong>class diagram&lt;/strong>:&lt;/p>
&lt;pre>&lt;code>```mermaid
classDiagram
Class01 &amp;lt;|-- AveryLongClass : Cool
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --&amp;gt; C2 : Where am i?
Class09 --* C3
Class09 --|&amp;gt; Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 &amp;lt;--&amp;gt; C2: Cool label
```
&lt;/code>&lt;/pre>
&lt;p>renders as&lt;/p>
&lt;div class="mermaid">classDiagram
Class01 &lt;|-- AveryLongClass : Cool
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 &lt;--> C2: Cool label
&lt;/div>
&lt;p>An example &lt;strong>state diagram&lt;/strong>:&lt;/p>
&lt;pre>&lt;code>```mermaid
stateDiagram
[*] --&amp;gt; Still
Still --&amp;gt; [*]
Still --&amp;gt; Moving
Moving --&amp;gt; Still
Moving --&amp;gt; Crash
Crash --&amp;gt; [*]
```
&lt;/code>&lt;/pre>
&lt;p>renders as&lt;/p>
&lt;div class="mermaid">stateDiagram
[*] --> Still
Still --> [*]
Still --> Moving
Moving --> Still
Moving --> Crash
Crash --> [*]
&lt;/div>
&lt;h3 id="todo-lists">Todo lists&lt;/h3>
&lt;p>You can even write your todo lists in Markdown too:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">&lt;span class="k">- [x]&lt;/span> Write math example
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">- [x]&lt;/span> Write diagram example
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">- [ ]&lt;/span> Do something else
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Write math example
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Write diagram example&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Do something else&lt;/li>
&lt;/ul>
&lt;h3 id="tables">Tables&lt;/h3>
&lt;p>Save your spreadsheet as a CSV file in your page&amp;rsquo;s folder and then render it by adding the &lt;em>Table&lt;/em> shortcode to your page:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="cl">&lt;span class="p">{{&amp;lt;&lt;/span> &lt;span class="nx">table&lt;/span> &lt;span class="nx">path&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s">&amp;#34;results.csv&amp;#34;&lt;/span> &lt;span class="nx">header&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s">&amp;#34;true&amp;#34;&lt;/span> &lt;span class="nx">caption&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s">&amp;#34;Table 1: My results&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;}}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
&lt;table class="table">
&lt;thead>
&lt;tr> &lt;th>customer_id&lt;/th> &lt;th>score&lt;/th> &lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td data-table-dtype="number">1&lt;/td>
&lt;td data-table-dtype="number">0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-table-dtype="number">2&lt;/td>
&lt;td data-table-dtype="text">0.5&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-table-dtype="number">3&lt;/td>
&lt;td data-table-dtype="number">1&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;caption>Table 1: My results&lt;/caption>
&lt;/table>
&lt;h3 id="callouts">Callouts&lt;/h3>
&lt;p>Academic supports a &lt;a href="https://docs.hugoblox.com/content/writing-markdown-latex/#callouts" target="_blank" rel="noopener">shortcode for callouts&lt;/a>, also referred to as &lt;em>asides&lt;/em>, &lt;em>hints&lt;/em>, or &lt;em>alerts&lt;/em>. By wrapping a paragraph in &lt;code>{{% callout note %}} ... {{% /callout %}}&lt;/code>, it will render as an aside.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">{{% callout note %}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">A Markdown aside is useful for displaying notices, hints, or definitions to your readers.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{% /callout %}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
&lt;div class="alert alert-note">
&lt;div>
A Markdown aside is useful for displaying notices, hints, or definitions to your readers.
&lt;/div>
&lt;/div>
&lt;h3 id="spoilers">Spoilers&lt;/h3>
&lt;p>Add a spoiler to a page to reveal text, such as an answer to a question, after a button is clicked.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="nt">spoiler&lt;/span> &lt;span class="na">text&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;Click to view the spoiler&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">You found me!
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="p">/&lt;/span>&lt;span class="nt">spoiler&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
&lt;details class="spoiler " id="spoiler-6">
&lt;summary>Click to view the spoiler&lt;/summary>
&lt;p>You found me!&lt;/p>
&lt;/details>
&lt;h3 id="icons">Icons&lt;/h3>
&lt;p>Academic enables you to use a wide range of &lt;a href="https://docs.hugoblox.com/getting-started/page-builder/#icons" target="_blank" rel="noopener">icons from &lt;em>Font Awesome&lt;/em> and &lt;em>Academicons&lt;/em>&lt;/a> in addition to &lt;a href="https://docs.hugoblox.com/content/writing-markdown-latex/#emojis" target="_blank" rel="noopener">emojis&lt;/a>.&lt;/p>
&lt;p>Here are some examples using the &lt;code>icon&lt;/code> shortcode to render icons:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="nt">icon&lt;/span> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;terminal&amp;#34;&lt;/span> &lt;span class="na">pack&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;fas&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}} Terminal
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="nt">icon&lt;/span> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;python&amp;#34;&lt;/span> &lt;span class="na">pack&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;fab&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}} Python
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="nt">icon&lt;/span> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;r-project&amp;#34;&lt;/span> &lt;span class="na">pack&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;fab&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}} R
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
&lt;p>
&lt;i class="fas fa-terminal pr-1 fa-fw">&lt;/i> Terminal&lt;br>
&lt;i class="fab fa-python pr-1 fa-fw">&lt;/i> Python&lt;br>
&lt;i class="fab fa-r-project pr-1 fa-fw">&lt;/i> R&lt;/p>
&lt;h3 id="did-you-find-this-page-helpful-consider-sharing-it-">Did you find this page helpful? Consider sharing it 🙌&lt;/h3></description></item><item><title>Slides</title><link>http://localhost:1313/slides/example/</link><pubDate>Tue, 05 Feb 2019 00:00:00 +0000</pubDate><guid>http://localhost:1313/slides/example/</guid><description>&lt;h1 id="create-slides-in-markdown-with-hugo-blox-builder">Create slides in Markdown with Hugo Blox Builder&lt;/h1>
&lt;p>&lt;a href="https://hugoblox.com/" target="_blank" rel="noopener">Hugo Blox Builder&lt;/a> | &lt;a href="https://docs.hugoblox.com/content/slides/" target="_blank" rel="noopener">Documentation&lt;/a>&lt;/p>
&lt;hr>
&lt;h2 id="features">Features&lt;/h2>
&lt;ul>
&lt;li>Efficiently write slides in Markdown&lt;/li>
&lt;li>3-in-1: Create, Present, and Publish your slides&lt;/li>
&lt;li>Supports speaker notes&lt;/li>
&lt;li>Mobile friendly slides&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="controls">Controls&lt;/h2>
&lt;ul>
&lt;li>Next: &lt;code>Right Arrow&lt;/code> or &lt;code>Space&lt;/code>&lt;/li>
&lt;li>Previous: &lt;code>Left Arrow&lt;/code>&lt;/li>
&lt;li>Start: &lt;code>Home&lt;/code>&lt;/li>
&lt;li>Finish: &lt;code>End&lt;/code>&lt;/li>
&lt;li>Overview: &lt;code>Esc&lt;/code>&lt;/li>
&lt;li>Speaker notes: &lt;code>S&lt;/code>&lt;/li>
&lt;li>Fullscreen: &lt;code>F&lt;/code>&lt;/li>
&lt;li>Zoom: &lt;code>Alt + Click&lt;/code>&lt;/li>
&lt;li>&lt;a href="https://revealjs.com/pdf-export/" target="_blank" rel="noopener">PDF Export&lt;/a>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="code-highlighting">Code Highlighting&lt;/h2>
&lt;p>Inline code: &lt;code>variable&lt;/code>&lt;/p>
&lt;p>Code block:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">porridge&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;blueberry&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="n">porridge&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s2">&amp;#34;blueberry&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Eating...&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h2 id="math">Math&lt;/h2>
&lt;p>In-line math: $x + y = z$&lt;/p>
&lt;p>Block math:&lt;/p>
&lt;p>$$
f\left( x \right) = ;\frac{{2\left( {x + 4} \right)\left( {x - 4} \right)}}{{\left( {x + 4} \right)\left( {x + 1} \right)}}
$$&lt;/p>
&lt;hr>
&lt;h2 id="fragments">Fragments&lt;/h2>
&lt;p>Make content appear incrementally&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{{% fragment %}} One {{% /fragment %}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{% fragment %}} **Two** {{% /fragment %}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{% fragment %}} Three {{% /fragment %}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Press &lt;code>Space&lt;/code> to play!&lt;/p>
&lt;span class="fragment " >
One
&lt;/span>
&lt;span class="fragment " >
&lt;strong>Two&lt;/strong>
&lt;/span>
&lt;span class="fragment " >
Three
&lt;/span>
&lt;hr>
&lt;p>A fragment can accept two optional parameters:&lt;/p>
&lt;ul>
&lt;li>&lt;code>class&lt;/code>: use a custom style (requires definition in custom CSS)&lt;/li>
&lt;li>&lt;code>weight&lt;/code>: sets the order in which a fragment appears&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="speaker-notes">Speaker Notes&lt;/h2>
&lt;p>Add speaker notes to your presentation&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">{{% speaker_note %}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">-&lt;/span> Only the speaker can read these notes
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">-&lt;/span> Press &lt;span class="sb">`S`&lt;/span> key to view
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{% /speaker_note %}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Press the &lt;code>S&lt;/code> key to view the speaker notes!&lt;/p>
&lt;aside class="notes">
&lt;ul>
&lt;li>Only the speaker can read these notes&lt;/li>
&lt;li>Press &lt;code>S&lt;/code> key to view&lt;/li>
&lt;/ul>
&lt;/aside>
&lt;hr>
&lt;h2 id="themes">Themes&lt;/h2>
&lt;ul>
&lt;li>black: Black background, white text, blue links (default)&lt;/li>
&lt;li>white: White background, black text, blue links&lt;/li>
&lt;li>league: Gray background, white text, blue links&lt;/li>
&lt;li>beige: Beige background, dark text, brown links&lt;/li>
&lt;li>sky: Blue background, thin dark text, blue links&lt;/li>
&lt;/ul>
&lt;hr>
&lt;ul>
&lt;li>night: Black background, thick white text, orange links&lt;/li>
&lt;li>serif: Cappuccino background, gray text, brown links&lt;/li>
&lt;li>simple: White background, black text, blue links&lt;/li>
&lt;li>solarized: Cream-colored background, dark green text, blue links&lt;/li>
&lt;/ul>
&lt;hr>
&lt;section data-noprocess data-shortcode-slide
data-background-image="/media/boards.jpg"
>
&lt;h2 id="custom-slide">Custom Slide&lt;/h2>
&lt;p>Customize the slide style and background&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="nt">slide&lt;/span> &lt;span class="na">background-image&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;/media/boards.jpg&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="nt">slide&lt;/span> &lt;span class="na">background-color&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;#0000FF&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="nt">slide&lt;/span> &lt;span class="na">class&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;my-style&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h2 id="custom-css-example">Custom CSS Example&lt;/h2>
&lt;p>Let&amp;rsquo;s make headers navy colored.&lt;/p>
&lt;p>Create &lt;code>assets/css/reveal_custom.css&lt;/code> with:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-css" data-lang="css">&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">reveal&lt;/span> &lt;span class="nt">section&lt;/span> &lt;span class="nt">h1&lt;/span>&lt;span class="o">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">reveal&lt;/span> &lt;span class="nt">section&lt;/span> &lt;span class="nt">h2&lt;/span>&lt;span class="o">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">reveal&lt;/span> &lt;span class="nt">section&lt;/span> &lt;span class="nt">h3&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">color&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="kc">navy&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h1 id="questions">Questions?&lt;/h1>
&lt;p>&lt;a href="https://discord.gg/z8wNYzb" target="_blank" rel="noopener">Ask&lt;/a>&lt;/p>
&lt;p>&lt;a href="https://docs.hugoblox.com/content/slides/" target="_blank" rel="noopener">Documentation&lt;/a>&lt;/p></description></item></channel></rss>