text:
Direct3D

Direct3D is a graphics application programming interface (API) for Microsoft Windows. Part of DirectX, Direct3D is used to render three-dimensional graphics in applications where performance is important, such as games. Direct3D uses hardware acceleration if it is available on the graphics card, allowing for hardware acceleration of the entire 3D rendering pipeline or even only partial acceleration. Direct3D exposes the advanced graphics capabilities of 3D graphics hardware, including Z-buffering, W-buffering, stencil buffering, spatial anti-aliasing, alpha blending, color blending, mipmapping, texture blending, clipping, culling, atmospheric effects, perspective-correct texture mapping, programmable HLSL shaders and effects. Integration with other DirectX technologies enables Direct3D to deliver such features as video mapping, hardware 3D rendering in 2D overlay planes, and even sprites, providing the use of 2D and 3D graphics in interactive media ties.

Direct3D contains many commands for 3D computer graphics rendering; however, since version 8, Direct3D has superseded the DirectDraw framework and also taken responsibility for the rendering of 2D graphics. Microsoft strives to continually update Direct3D to support the latest technology available on 3D graphics cards. Direct3D offers full vertex software emulation but no pixel software emulation for features not available in hardware. For example, if software programmed using Direct3D requires pixel shaders and the video card on the user's computer does not support that feature, Direct3D will not emulate it, although it will compute and render the polygons and textures of the 3D models, albeit at a usually degraded quality and performance compared to the hardware equivalent. The API does include a Reference Rasterizer (or REF device), which emulates a generic graphics card in software, although it is too slow for most real-time 3D applications and is typically only used for debugging. A new real-time software rasterizer, WARP, designed to emulate the complete feature set of Direct3D 10.1, is included with Windows 7 and Windows Vista Service Pack 2 with the Platform Update; its performance is said to be on par with lower-end 3D cards on multi-core CPUs.

As part of DirectX, Direct3D is available for Windows 95 and above, and is the base for the vector graphics API on the different versions of Xbox console systems. The Wine compatibility layer, a free software reimplementation of several Windows APIs, includes an implementation of Direct3D.

Direct3D's main competitor is Khronos' OpenGL and its follow-on Vulkan. Fahrenheit was an attempt by Microsoft and SGI to unify OpenGL and Direct3D in the 1990s, but was eventually canceled.

Overview

 * Direct3D 6.0 – Multitexturing
 * Direct3D 7.0 – Hardware Transformation, Clipping and Lighting (TCL/T&L)
 * Direct3D 8.0 – Pixel Shader 1.0/1.1 & Vertex Shader 1.0/1.1
 * Direct3D 8.1 – Pixel Shader 1.2/1.3/1.4
 * Direct3D 9.0 – Shader Model 2.0 (Pixel Shader 2.0 & Vertex Shader 2.0)
 * Direct3D 9.0a – Shader Model 2.0a (Pixel Shader 2.0a & Vertex Shader 2.0a)
 * Direct3D 9.0b – Pixel Shader 2.0b
 * Direct3D 9.0c – last version supported for Windows 98/ME (early releases) and for Windows 2000/XP (all releases); Shader Model 3.0 (Pixel Shader 3.0 & Vertex Shader 3.0)
 * Direct3D 9.0L – Windows Vista only; Direct3D 9.0c, Shader Model 3.0, Windows Graphics Foundation 1.0, DXVA 1.0, GPGPU
 * Direct3D 10.0 – Windows Vista/Windows 7; Shader Model 4.0, Windows Graphics Foundation 2.0, DXVA 2.0
 * Direct3D 10.1 – Windows Vista SP1/Windows 7; Shader Model 4.1, Windows Graphics Foundation 2.1, DXVA 2.1
 * Direct3D 11.0 – Windows Vista SP2/Windows 7; Shader Model 5.0, Tessellation, Multithreaded rendering, Compute shaders, implemented by hardware and software running Direct3D 9/10/10.1
 * Direct3D 11.1 – Windows 8 (partially supported on Windows 7 SP1 also); Stereoscopic 3D Rendering
 * Direct3D 11.2 – Windows 8.1; Tiled resources
 * Direct3D 11.3 – Windows 10
 * Direct3D 12.0 – Windows 10; low-level rendering API, Shader Model 5.1 and 6.0
 * Direct3D 12.1 – Windows 10; DirectX Raytracing
 * Direct3D 12.2 – Windows 10; DirectX 12 Ultimate

Direct3D 2.0 and 3.0
In 1992, Servan Keondjian, Doug Rabson and Kate Seekings started a company named RenderMorphics, which developed a 3D graphics API named Reality Lab, which was used in medical imaging and CAD software. Two versions of this API were released. Microsoft bought RenderMorphics in February 1995, bringing its staff on board to implement a 3D graphics engine for Windows 95. The first version of Direct3D shipped in DirectX 2.0 (June 2, 1996) and DirectX 3.0 (September 26, 1996).

Direct3D initially implemented an "immediate mode" 3D API and layered upon it a "retained mode" 3D API. Both types of API were already offered with the second release of Reality Lab before Direct3D was released. Like other DirectX APIs, such as DirectDraw, both were based on COM. The retained mode API was a scene graph API that attained little adoption. Game developers clamored for more direct control of the hardware's activities than the Direct3D retained mode could provide. Only two games that sold a significant volume, Lego Island and Lego Rock Raiders, were based on the Direct3D retained mode, so Microsoft did not update the retained mode API after DirectX 3.0.

For DirectX 2.0 and 3.0, the Direct3D immediate mode used an "execute buffer" programming model that Microsoft hoped hardware vendors would support directly. Execute buffers were intended to be allocated in hardware memory and parsed by the hardware to perform the 3D rendering. They were considered extremely awkward to program at the time, however, hindering adoption of the new API and prompting calls for Microsoft to adopt OpenGL as the official 3D rendering API for games as well as workstation applications. (see OpenGL vs. Direct3D)

Rather than adopt OpenGL as a gaming API, Microsoft chose to continue improving Direct3D, not only to be competitive with OpenGL, but to compete more effectively with other proprietary APIs such as 3dfx's Glide.

From the beginning, the immediate mode also supported Talisman's tiled rendering with the BeginScene/EndScene methods of the IDirect3DDevice interface.

Direct3D 4.0
No substantive changes were planned to Direct3D for DirectX 4.0, which was scheduled to ship in late 1996 and then canceled.

Direct3D 5.0
In December 1996, a team in Redmond took over development of the Direct3D Immediate Mode, while the London-based RenderMorphics team continued work on the Retained Mode. The Redmond team added the DrawPrimitive API that eliminated the need for applications to construct execute buffers, making Direct3D more closely resemble other immediate mode rendering APIs such as Glide and OpenGL. The first beta of DrawPrimitive shipped in February 1997, and the final version shipped with DirectX 5.0 in August 1997.

Besides introducing an easier-to-use immediate mode API, DirectX 5.0 added the SetRenderTarget method that enabled Direct3D devices to write their graphical output to a variety of DirectDraw surfaces.

Direct3D 6.0
DirectX 6.0 (released in August, 1998) introduced numerous features to cover contemporary hardware (such as multitexture and stencil buffers) as well as optimized geometry pipelines for x87, SSE and 3DNow! and optional texture management to simplify programming. Direct3D 6.0 also included support for features that had been licensed by Microsoft from specific hardware vendors for inclusion in the API, in exchange for the time-to-market advantage to the licensing vendor. S3 texture compression support was one such feature, renamed as DXTC for purposes of inclusion in the API. Another was TriTech's proprietary bump mapping technique. Microsoft included these features in DirectX, then added them to the requirements needed for drivers to get a Windows logo to encourage broad adoption of the features in other vendors' hardware.

A minor update to DirectX 6.0 came in the February, 1999 DirectX 6.1 update. Besides adding DirectMusic support for the first time, this release improved support for Intel Pentium III 3D extensions.

A confidential memo sent in 1997 shows Microsoft planning to announce full support for Talisman in DirectX 6.0, but the API ended up being canceled (See the Microsoft Talisman page for details).

Direct3D 7.0
DirectX 7.0 (released in September, 1999) introduced the .dds texture format and support for transform and lighting hardware acceleration (first available on PC hardware with Nvidia's GeForce 256), as well as the ability to allocate vertex buffers in hardware memory. Hardware vertex buffers represent the first substantive improvement over OpenGL in DirectX history. Direct3D 7.0 also augmented DirectX support for multitexturing hardware, and represents the pinnacle of fixed-function multitexture pipeline features: although powerful, it was so complicated to program that a new programming model was needed to expose the shading capabilities of graphics hardware. Direct3D 7.0 also introduced DXVA features.

Direct3D 8.0
DirectX 8.0 (released in November, 2000) introduced programmability in the form of vertex and pixel shaders, enabling developers to write code without worrying about superfluous hardware state. The complexity of the shader programs depended on the complexity of the task, and the display driver compiled those shaders to instructions that could be understood by the hardware. Direct3D 8.0 and its programmable shading capabilities were the first major departure from an OpenGL-style fixed-function architecture, where drawing is controlled by a complicated state machine. Direct3D 8.0 also eliminated DirectDraw as a separate API. Direct3D subsumed all remaining DirectDraw API calls still needed for application development, such as Present, the function used to display rendering results.

Direct3D was not considered to be user friendly, but as of DirectX version 8.1, many usability problems were resolved. Direct3D 8 contained many powerful 3D graphics features, such as vertex shaders, pixel shaders, fog, bump mapping and texture mapping.

Direct3D 9
Direct3D 9.0 (released in December, 2002) added a new version of the High Level Shader Language support for floating-point texture formats, Multiple Render Targets (MRT), Multiple-Element Textures, texture lookups in the vertex shader and stencil buffer techniques.

Direct3D 9Ex
Direct3D 9Ex (previously versioned 9.0L ("L" standing for Longhorn, the codename for Windows Vista)), an extension only available in Windows Vista, 7, 8, 8.1, 10, and 11, allows the use of the advantages offered by Windows Vista's Windows Display Driver Model (WDDM) and is used for Windows Aero. Direct3D 9Ex, in conjunction with DirectX 9 class WDDM drivers allows graphics memory to be virtualized and paged out to system memory, allows graphics operations to be interrupted and scheduled and allow DirectX surfaces to be shared across processes. Direct3D 9Ex was previously known as version 1.0 of Windows Graphics Foundation (WGF).

Direct3D 9Ex improvements - Win32 apps

Direct3D 10
Windows Vista includes a major update to the Direct3D API. Originally called WGF 2.0 (Windows Graphics Foundation 2.0), then DirectX 10 and DirectX Next, Direct3D 10 features an updated shader model 4.0 and optional interruptibility for shader programs. In this model shaders still consist of fixed stages as in previous versions, but all stages support a nearly unified interface, as well as a unified access paradigm for resources such as textures and shader constants. The language itself has been extended to be more expressive, including integer operations, a greatly increased instruction count, and more C-like language constructs. In addition to the previously available vertex and pixel shader stages, the API includes a geometry shader stage that breaks the old model of one vertex in/one vertex out, to allow geometry to be generated from within a shader, thus allowing for complex geometry to be generated entirely by the graphics hardware.

Windows XP and earlier are not supported by DirectX 10.0 and above. Furthermore, Direct3D 10 dropped support for the retained mode API which had been a part of Direct3D since the beginning, making Windows Vista incompatible with 3D games that had used the retained mode API as their rendering engine.

Unlike prior versions of the API, Direct3D 10 no longer uses "capability bits" (or "caps") to indicate which features are supported on a given graphics device. Instead, it defines a minimum standard of hardware capabilities which must be supported for a display system to be "Direct3D 10 compatible". This is a significant departure, with the goal of streamlining application code by removing capability-checking code and special cases based on the presence or absence of specific capabilities.

Because Direct3D 10 hardware was comparatively rare after the initial release of Windows Vista and because of the massive install base of non-Direct3D 10 compatible graphics cards, the first Direct3D 10-compatible games still provide Direct3D 9 render paths. Examples of such titles are games originally written for Direct3D 9 and ported to Direct3D 10 after their release, such as Company of Heroes, or games originally developed for Direct3D 9 with a Direct3D 10 path retrofitted later during their development, such as Hellgate: London or Crysis. The DirectX 10 SDK became available in February 2007.

Direct3D 10.0
Direct3D 10.0 level hardware must support the following features: the ability to process entire primitives in the new geometry-shader stage, the ability to output pipeline-generated vertex data to memory using the stream-output stage, multisampled alpha-to-coverage support, readback of a depth/stencil surface or a multisampled resource once it is no longer bound as a render target, full HLSL integration – all Direct3D 10 shaders are written in HLSL and implemented with the common-shader core, integer and bitwise shader operations, organization of pipeline state into 5 immutable state objects, organization of shader constants into constant buffers, increased number of render targets, textures, and samplers, no shader length limit, new resource types and resource formats, layered runtime/API layers, option to perform per-primitive material swapping and setup using a geometry shader, increased generalization of resource access using a view, removed legacy hardware capability bits (caps).
 * Fixed pipelines are being done away with in favor of fully programmable pipelines (often referred to as unified pipeline architecture), which can be programmed to emulate the same.
 * New state object to enable (mostly) the CPU to change states efficiently.
 * Unified shader model enhances the programmability of the graphics pipeline. It adds instructions for integer and bitwise calculations.
 * The common shader core provides a full set of IEEE-compliant 32-bit integer and bitwise operations. These operations enable a new class of algorithms in graphics hardware—examples include compression and packing techniques, FFTs, and bitfield program-flow control.
 * Geometry shaders, which work on adjacent triangles which form a mesh.
 * Texture arrays enable swapping of textures in GPU without CPU intervention.
 * Predicated rendering allows drawing calls to be ignored based on some other conditions. This enables rapid occlusion culling, which prevents objects from being rendered if it is not visible or too far to be visible.
 * Instancing 2.0 support, allowing multiple instances of similar meshes, such as armies, or grass or trees, to be rendered in a single draw call, reducing the processing time needed for multiple similar objects to that of a single one.

Direct3D 10.1
Direct3D 10.1 was announced by Microsoft shortly after the release of Direct3D 10 as a minor update. The specification was finalized with the release of November 2007 DirectX SDK and the runtime was shipped with the Windows Vista SP1, which is available since mid-March 2008.

Direct3D 10.1 sets a few more image quality standards for graphics vendors, and gives developers more control over image quality. Features include finer control over anti-aliasing (both multisampling and supersampling with per sample shading and application control over sample position) and more flexibilities to some of the existing features (cubemap arrays and independent blending modes). Direct3D 10.1 level hardware must support the following features: Multisampling has been enhanced to generalize coverage based transparency and make multisampling work more effectively with multi-pass rendering, better culling behavior – Zero-area faces are automatically culled; this affects wireframe rendering only, independent blend modes per render target, new sample-frequency pixel shader execution with primitive rasterization, increased pipeline stage bandwidth, both color and depth/stencil MSAA surfaces can now be used with CopyResource as either a source or destination, MultisampleEnable only affects line rasterization (points and triangles are unaffected), and is used to choose a line drawing algorithm. This means that some multisample rasterization from Direct3D 10 are no longer supported, Texture Sampling – sample_c and sample_c_lz instructions are defined to work with both Texture2DArrays and TextureCubeArrays use the Location member (the alpha component) to specify an array index, support for TextureCubeArrays.
 * Mandatory 32-bit floating point filtering.
 * Floating Point Rules – Uses the same IEEE-754 rules for floating-point EXCEPT 32-bit floating point operations have been tightened to produce a result within 0.5 unit-last-place (0.5 ULP) of the infinitely precise result. This applies to addition, subtraction, and multiplication. (accuracy to 0.5 ULP for multiply, 1.0 ULP for reciprocal).
 * Formats – The precision of float16 blending has increased to 0.5 ULP. Blending is also required for UNORM16/SNORM16/SNORM8 formats.
 * Format Conversion while copying between certain 32/64/128 bit prestructured, typed resources and compressed representations of the same bit widths.
 * Mandatory support for 4x MSAA for all render targets except R32G32B32A32 and R32G32B32.
 * Shader model 4.1

Unlike Direct3D 10 which strictly required Direct3D 10-class hardware and driver interfaces, Direct3D 10.1 runtime can run on Direct3D 10.0 hardware using a concept of "feature levels", but new features are supported exclusively by new hardware which expose feature level 10_1.

The only available Direct3D 10.1 hardware as of June 2008 were the Radeon HD 3000 series and Radeon HD 4000 series from ATI; in 2009, they were joined by Chrome 430/440GT GPUs from S3 Graphics and select lower-end models in GeForce 200 series from Nvidia. In 2011, Intel chipsets started supporting Direct3D 10.1 with the introduction of Intel HD Graphics 2000 (GMA HD).

Direct3D 11
Direct3D 11 was released as part of Windows 7. It was presented at Gamefest 2008 on July 22, 2008 and demonstrated at the Nvision 08 technical conference on August 26, 2008. The Direct3D 11 Technical Preview has been included in November 2008 release of DirectX SDK. AMD previewed working DirectX11 hardware at Computex on June 3, 2009, running some DirectX 11 SDK samples.

The Direct3D 11 runtime is able to run on Direct3D 9 and 10.x-class hardware and drivers using the concept of "feature levels", expanding on the functionality first introduced in Direct3D 10.1 runtime. Feature levels allow developers to unify the rendering pipeline under Direct3D 11 API and make use of API improvements such as better resource management and multithreading even on entry-level cards, though advanced features such as new shader models and rendering stages will only be exposed on up-level hardware. There are three "10 Level 9" profiles which encapsulate various capabilities of popular DirectX 9.0a cards, and Direct3D 10, 10.1, and 11 each have a separate feature level; each upper level is a strict superset of a lower level.

Tessellation was earlier considered for Direct3D 10, but was later abandoned. GPUs such as Radeon R600 feature a tessellation engine that can be used with Direct3D 9/10/10.1  and OpenGL, but it's not compatible with Direct3D 11 (according to Microsoft). Older graphics hardware such as Radeon 8xxx, GeForce 3/4 had support for another form of tesselation (RT patches, N patches) but those technologies never saw substantial use. As such, their support was dropped from newer hardware.

Microsoft has also hinted at other features such as order independent transparency, which was never exposed by the Direct3D API but supported almost transparently by early Direct3D hardware such as Videologic's PowerVR line of chips.

Direct3D 11.0
Direct3D 11.0 features include: Support for Shader Model 5.0, Dynamic shader linking, addressable resources, additional resource types, subroutines, geometry instancing, coverage as pixel shader input, programmable interpolation of inputs, new texture compression formats (1 new LDR format and 1 new HDR format), texture clamps to limit WDDM preload, require 8-bits of subtexel and sub-mip precision on texture filtering, 16K texture limits, Gather4(support for multi-component textures, support for programmable offsets), DrawIndirect, conservative oDepth, Depth Bias, addressable stream output, per-resource mipmap clamping, floating-point viewports, shader conversion instructions, improved multithreading.
 * Shader Model 5
 * Support for Tessellation and Tessellation Shaders to increase at runtime the number of visible polygons from a low detail polygonal model
 * Multithreaded rendering — to render to the same Direct3D device object from different threads for multi core CPUs
 * Compute shaders — which exposes the shader pipeline for non-graphical tasks such as stream processing and physics acceleration, similar in spirit to what OpenCL, Nvidia CUDA, ATI Stream, and HLSL Shader Model 5 achieve among others.
 * Mandatory support for 4x MSAA for all render targets and 8x MSAA for all render target formats except R32G32B32A32 formats.

Other notable features are the addition of two new texture compression algorithms for more efficient packing of high quality and HDR/alpha textures and an increased texture cache.

First seen in the Release Candidate version, Windows 7 integrates the first released Direct3D 11 support. The Platform Update for Windows Vista includes full-featured Direct3D 11 runtime and DXGI 1.1 update, as well as other related components from Windows 7 like WARP, Direct2D, DirectWrite, and WIC.

Direct3D 11.1
Direct3D 11.1 is an update to the API that ships with Windows 8. The Direct3D runtime in Windows 8 features DXGI 1.2 and requires new WDDM 1.2 device drivers. Preliminary version of the Windows SDK for Windows 8 Developer Preview was released on September 13, 2011.

The new API features shader tracing and HLSL compiler enhancements, support for minimum precision HLSL scalar data types, UAVs (Unordered Access Views) at every pipeline stage, target-independent rasterization (TIR), option to map SRVs of dynamic buffers with NO_OVERWRITE, shader processing of video resources, option to use logical operations in a render target, option to bind a subrange of a constant buffer to a shader and retrieve it, option to create larger constant buffers than a shader can access, option to discard resources and resource views, option to change subresources with new copy options, option to force the sample count to create a rasterizer state, option to clear all or part of a resource view, option to use Direct3D in Session 0 processes, option to specify user clip planes in HLSL on feature level 9 and higher, support for shadow buffer on feature level 9, support for video playback, extended support for shared Texture2D resources, and on-the-fly swapping between Direct3D 10 and 11 contexts and feature levels. Direct3D 11.1 includes new feature level 11_1, which brings minor updates to the shader language, such as larger constant buffers and optional double-precision instructions, as well as improved blending modes and mandatory support for 16-bit color formats to improve the performance of entry-level GPUs such as Intel HD Graphics. WARP has been updated to support feature level 11_1.

The Platform Update for Windows 7 includes a limited set of features from Direct3D 11.1, though components that depend on WDDM 1.2 – such as feature level 11_1 and its related APIs, or quad buffering for stereoscopic rendering – are not present.

Direct3D 11.2
Direct3D 11.2  was shipped with Windows 8.1. New hardware features require DXGI 1.3 with WDDM 1.3 drivers and include runtime shader modification and linking, Function linking graph(FLG), inbox HLSL compiler, option to annotate graphics commands. Feature levels 11_0 and 11_1 introduce optional support for tiled resources with shader level of detail clamp (Tier2). The latter feature effectively provides control over the hardware page tables present in many current GPUs. WARP was updated to fully support the new features. There is no feature level 11_2 however; the new features are dispersed across existing feature levels. Those that are hardware-dependent can be checked individually via. Some of the "new" features in Direct3D 11.2 actually expose some old hardware features in a more granular way; for example  exposes partial support for instancing on feature level 9_1 and 9_2 hardware, otherwise fully supported from feature level 9_3 onward.

Direct3D 11.X

Direct3D 11.X is a superset of DirectX 11.2 running on the Xbox One. It includes some features, such as draw bundles, that were later announced as part of DirectX 12.

Direct3D 11.3
Direct3D 11.3 shipped in July 2015 with Windows 10; it includes minor rendering features from Direct3D 12, while keeping the overall structure of the Direct3D 11.x API. Direct3D 11.3 introduces optional Shader Specified Stencil Reference Value, Typed Unordered Access View Loads, Rasterizer Ordered Views (ROVs), optional Standard Swizzle, optional Default Texture Mapping, Conservative Rasterization (out of three tiers), optional Unified Memory Access (UMA) support, and additional Tiled Resources (tier 2) (Volume tiled resources).

Direct3D 11.4

 * Direct3D 11.4 version 1511 – Initial Direct3D 11.4 was introduced with Windows 10 Threshold 2 update (version 1511) improving external graphics adapters support and DXGI 1.5.
 * Direct3D 11.4 version 1607 – Updated Direct3D 11.4 with Windows 10 Anniversary Update (version 1607) includes support WDDM 2.1 and for UHDTV HDR10 format (ST 2084) and variable refresh rates support for UWP applications.

Direct3D 12
Direct3D 12 allows a lower level of hardware abstraction than earlier versions, enabling future applications to significantly improve multithreaded scaling and decrease CPU utilization. This is achieved by better matching the Direct3D abstraction layer with the underlying hardware, through new features such as Indirect Drawing, descriptor tables, concise pipeline state objects, and draw call bundles. Reducing driver overhead is the main attraction of Direct3D 12, similarly to AMD's Mantle; in the words of its lead developer Max McMullen, the main goal of Direct3D 12 is to achieve "console-level efficiency" and improved CPU parallelism.

Although Nvidia has announced broad support for Direct3D 12, they were also somewhat reserved about the universal appeal of the new API, noting that while game engine developers may be enthusiastic about directly managing GPU resources from their application code, "a lot of [other] folks wouldn't" be happy to have to do that.

Some new hardware features are also in Direct3D 12, including Shader Model 5.1, Volume Tiled Resources(Tier 2), Shader Specified Stencil Reference Value, Typed UAV Load, Conservative Rasterization(Tier 1), better collision and culling with Conservative Rasterization, Rasterizer Ordered Views (ROVs), Standard Swizzles, Default Texture Mapping, Swap Chains, swizzled resources and compressed resources, additional blend modes, programmable blend and efficient order-independent transparency (OIT) with pixel ordered UAV.

Pipeline state objects (PSOs) have evolved from Direct3D 11, and the new concise pipeline states mean that the process has been simplified. DirectX 11 offered flexibility in how its states could be altered, to the detriment of performance. Simplifying the process and unifying the pipelines (e.g. pixel shader states) lead to a more streamlined process, significantly reducing the overheads and allowing the graphics card to draw more calls for each frame. Once created, the PSO is immutable.

Root signatures introduce configurations to link command lists to resources required by shaders. They define the layout of resources that shaders will use and specifies what resources will be bound to the pipeline. A graphics command list has both a graphics and compute root signature, while a compute command list will have only a compute root signature. These root signatures are completely independent of each other. While the root signature lays out the types of data for shaders to use, it does not define or map the actual memory or data.

Root parameters are one type of entry in a root signature. The actual values of the root parameters that are modified at runtime are called root arguments. This is the data that the shaders read.

in command lists and bundles, aiming to ensure the CPU and GPU work together in a more balanced manner.

Within Direct3D 11, the commands are sent from the CPU to the GPU one by one, and the GPU works through these commands sequentially. This means that commands are bottlenecked by the speed at which the CPU could send these commands in a linear fashion. Within DirectX 12 these commands are sent as command lists, containing all the required information within a single package. The GPU is then capable of computing and executing this command in one single process, without having to wait on any additional information from the CPU.

Within these command lists are bundles. Where previously commands were just taken, used, and then forgotten by the GPU, bundles can be reused. This decreases the workload of the GPU and means repeated assets can be used much faster.

While resource binding is fairly convenient in Direct3D 11 for developers at the moment, its inefficiency means several modern hardware capabilities are being drastically underused. When a game engine needed resources in DX11, it had to draw the data from scratch every time, meaning repeat processes and unnecessary uses. In Direct3D 12, descriptor heaps and tables mean the most often used resources can be allocated by developers in tables, which the GPU can quickly and easily access. This can contribute to better performance than Direct3D 11 on equivalent hardware, but it also entails more work for the developer.

Dynamic Heaps are also a feature of Direct3D 12.

Direct3D 12 features explicit multi-adapter support, allowing the explicit control of multiple GPUs configuration systems. Such configurations can be built with graphics adapter of the same hardware vendor as well of different hardware vendor together.

An experimental support of D3D 12 for Windows 7 SP1 has been released by Microsoft in 2019 via a dedicated NuGet package.

 * Direct3D 12 version 1607 – With the Windows 10 anniversary update (version 1607), released on August 2, 2016, the Direct3D 12 runtime has been updated to support constructs for explicit multithreading and inter-process communication, allowing developers to take advantage of modern massively parallel GPUs. Other features include updated root signatures version 1.1, as well as support for HDR10 format and variable refresh rates.
 * Direct3D 12 version 1703 – With the Windows 10 Creators Update (version 1703), released on April 11, 2017, the Direct3D 12 runtime has been updated to support Shader Model 6.0 and DXIL. and Shader Model 6.0 requires Windows 10 Anniversary Update (version 1607), WDDM 2.1. New graphical features are Depth Bounds Testing and Programmable MSAA.
 * Direct3D 12 version 1709 – Direct3D in Windows 10 Fall Creators Update (version 1709), released on October 17, 2017, includes improved debugging.
 * Direct3D 12 version 1809 – Windows 10 October 2018 Update (version 1809) brings support for DirectX Raytracing so GPUs can benefit from its API.
 * Direct3D 12 version 1903 – Windows 10 May 2019 Update (version 1903) brings support for DirectML and NPU.
 * Direct3D 12 version 2004 – Windows 10 May 2020 Update (version 2004) brings support for Mesh & Amplification Shaders, Sampler Feedback, as well DirectX Raytracing Tier 1.1 and memory allocation improvements.
 * Direct3D 12 version 21H2 – Windows 10 version 21H2 and Windows 11 version 21H2 brings support for DirectStorage.

Architecture
Direct3D is a Microsoft DirectX API subsystem component. The aim of Direct3D is to abstract the communication between a graphics application and the graphics hardware drivers. It is presented like a thin abstract layer at a level comparable to GDI (see attached diagram). Direct3D contains numerous features that GDI lacks.

Direct3D is an Immediate mode graphics API. It provides a low-level interface to every video card 3D function (transformations, clipping, lighting, materials, textures, depth buffering and so on). It once had a higher level Retained mode component, now officially discontinued.

Direct3D immediate mode presents three main abstractions: devices, resources and Swap Chains (see attached diagram). Devices are responsible for rendering the 3D scene. They provide an interface with different rendering capabilities. For example, the mono device provides white and black rendering, while the RGB device renders in color. There are four types of devices:

 * HAL (hardware abstraction layer) device: For devices supporting hardware acceleration.
 * Reference device: Simulates new functions not yet available in hardware. It is necessary to install the Direct3D SDK to use this device type.
 * Null reference device: Does nothing. This device is used when the SDK is not installed and a reference device is requested.
 * Pluggable software device: Performs software rendering. This device was introduced with DirectX 9.0.

Every device contains at least one swap chain. A swap chain is made up of one or more back buffer surfaces. Rendering occurs in the back buffer.

Moreover, devices contain a collection of resources; specific data used during rendering. Each resource has four attributes:

 * Type: Determines the type of resource: surface, volume, texture, cube texture, volume texture, surface texture, index buffer or vertex buffer.
 * Pool: Describes how the resource is managed by the runtime and where it is stored. In the Default pool the resource will exist only in device memory. Resources in the managed pool will be stored in system memory, and will be sent to the device when required. Resources in system memory pool will only exist in system memory. Finally, the scratch pool is basically the same as the system memory pool, but resources are not bound by hardware restrictions.
 * Format: Describes the layout of the resource data in memory. For example, D3DFMT_R8G8B8 format value means a 24 bits color depth (8 bits for red, 8 bits for green and 8 bits for blue).
 * Usage: Describes, with a collection of flag bits, how the resource will be used by the application. These flags dictate which resources are used in dynamic or static access patterns. Static resource values don't change after being loaded, whereas dynamic resource values may be modified.

Direct3D implements two display modes:

 * Fullscreen mode: The Direct3D application generates all of the graphical output for a display device. In this mode Direct3D automatically captures Alt-Tab and sets/restores screen resolution and pixel format without the programmer intervention. This also provides plenty of problems for debugging due to the 'Exclusive Cooperative Mode'.
 * Windowed mode: The result is shown inside the area of a window. Direct3D communicates with GDI to generate the graphical output in the display. Windowed mode can have the same level of performance as full-screen, depending on driver support.

Pipeline
The Microsoft Direct3D 11 API defines a process to convert a group of vertices, textures, buffers, and state into an image on the screen. This process is described as a rendering pipeline with several distinct stages. The different stages of the Direct3D 11 pipeline are:

 * 1) Input-Assembler: Reads in vertex data from an application supplied vertex buffer and feeds them down the pipeline.
 * 2) Vertex Shader: Performs operations on a single vertex at a time, such as transformations, skinning, or lighting.
 * 3) Hull-Shader: Performs operations on sets of patch control points, and generates additional data known as patch constants.
 * 4) Tessellator: Subdivides geometry to create higher-order representations of the hull.
 * 5) Domain-Shader: Performs operations on vertices output by the tessellation stage, in much the same way as a vertex shader.
 * 6) Geometry Shader: Processes entire primitives such as triangles, points, or lines. Given a primitive, this stage discards it, or generates one or more new primitives.
 * 7) Stream-Output: Can write out the previous stage's results to memory. This is useful to recirculate data back into the pipeline.
 * 8) Rasterizer:  Converts primitives into pixels, feeding these pixels into the pixel shader. The Rasterizer may also perform other tasks such as clipping what is not visible, or interpolating vertex data into per-pixel data.
 * 9) Pixel Shader: Determines the final pixel color to be written to the render target and can also calculate a depth value to be written to the depth buffer.
 * 10) Output-Merger: Merges various types of output data (pixel shader values, alpha blending, depth/stencil...) to build the final result.

The pipeline stages illustrated with a round box are fully programmable. The application provides a shader program that describes the exact operations to be completed for that stage. Many stages are optional and can be disabled altogether.

Feature levels
In Direct3D 5 to 9, when new versions of the API introduced support for new hardware capabilities, most of them were optional – each graphics vendor maintained their own set of supported features in addition to the basic required functionality. Support for individual features had to be determined using "capability bits" or "caps", making cross-vendor graphics programming a complex task.

Direct3D 10 introduced a much simplified set of mandatory hardware requirements based on most popular Direct3D 9 capabilities which all supporting graphics cards had to adhere to, with only a few optional capabilities for supported texture formats and operations.

Direct3D 10.1 added a few new mandatory hardware requirements, and to remain compatible with 10.0 hardware and drivers, these features were encapsulated in two sets called "feature levels", with 10.1 level forming a superset of 10.0 level. As Direct3D 11.0, 11.1 and 12 added support for new hardware, new mandatory capabilities were further grouped in upper feature levels.

Direct3D 11 also introduced "10level9", a subset of the Direct3D 10 API with three feature levels encapsulating various Direct3D 9 cards with WDDM drivers, and Direct3D 11.1 re-introduced a few optional features for all levels, which were expanded in Direct3D 11.2 and later versions.

This approach allows developers to unify the rendering pipeline and use a single version of the API on both newer and older hardware, taking advantage of performance and usability improvements in the newer runtime.

New feature levels are introduced with updated versions of the API and typically encapsulate:

 * major mandatory features – (Direct3D 11.0, 12),
 * a few minor features (Direct3D 10.1, 11.1), or
 * a common set of previously optional features (Direct3D 11.0 "10 level 9").

Each upper level is a strict superset of a lower level, with only a few new or previously optional features that move to the core functionality on an upper level. More advanced features in a major revision of the Direct3D API such as new shader models and rendering stages are only exposed on up-level hardware.

Separate capabilities exist to indicate support for specific texture operations and resource formats; these are specified per each texture format using a combination of capability flags.

Feature levels use underscore as a delimiter (i.e. "12_1"), while API/runtime versions use dot (i.e. "Direct3D 11.4").

Direct3D 11 levels
In Direct3D 11.4 for Windows 10, there are nine feature levels provided by D3D_FEATURE_LEVEL structure; levels 9_1, 9_2 and 9_3 (collectively known as Direct3D 10 Level 9) re-encapsulate various features of popular Direct3D 9 cards, levels 10_0, 10_1 refer to respective legacy versions of Direct3D 10, 11_0 and 11_1 reflects the feature introduced with Direct3D 11 and Direct3D 11.1 APIs and runtimes, while levels 12_0 and 12_1 correspond the new feature levels introduced with the Direct3D 12 API.

Direct3D 12 levels
Direct3D 12 for Windows 10 requires graphics hardware conforming to feature levels 11_0 and 11_1 which support virtual memory address translations and requires WDDM 2.0 drivers. There are two new feature levels, 12_0 and 12_1, which include some new features exposed by Direct3D 12 that are optional on levels 11_0 and 11_1. Some previously optional features are realigned as baseline on levels 11_0 and 11_1. Shader Model 6.0 has been released with Windows 10 Creators Update and requires Windows 10 Anniversary Update, WDDM 2.1 drivers.

Direct3D 12 introduces a revamped resource binding model which allows explicit control of memory. Abstract "resource view" objects are now represented with resource descriptors, which are allocated using memory heaps and tables. Resource Binding tiers define maximum number of resources that can be addressed using CBV (constant buffer view), SRV (shader resource view) and UAV (unordered access view), as well as texture sampler units. Tier 3 hardware allows fully bindless resources only restricted by the size of the descriptor heap, while Tier 1 and Tier 2 hardware impose some limits on the number of descriptors ("views") that can be used simultaneously.

Multithreading
WDDM driver model in Windows Vista and higher supports arbitrarily large number of execution contexts (or threads) in hardware or in software. Windows XP only supported multitasked access to Direct3D, where separate applications could execute in different windows and be hardware accelerated, and the OS had limited control about what the GPU could do and the driver could switch execution threads arbitrarily.

The ability to execute the runtime in a multi-threaded mode has been introduced with Direct3D 11 runtime. Each execution context is presented with a resource view of the GPU. Execution contexts are protected from each other, however a rogue or badly written app can take control of the execution in the user-mode driver and could potentially access data from another process within GPU memory by sending modified commands. Though protected from access by another app, a well-written app still needs to protect itself against failures and device loss caused by other applications.

The OS manages the threads all by itself, allowing the hardware to switch from one thread to the other when appropriate, and also handles memory management and paging (to system memory and to disk) via integrated OS-kernel memory management.

Finer-grained context switching, i.e. being able to switch two execution threads at the shader-instruction level instead of the single-command level or even batch of commands, was introduced in WDDM/DXGI 1.2 which shipped with Windows 8. This overcomes a potential scheduling problem when application would have very long execution of a single command/batch of commands and will have to be terminated by the OS watchdog timer.

WDDM 2.0 and DirectX 12 have been reengineered to allow fully multithreaded draw calls. This was achieved by making all resources immutable (i.e. read-only), serializing the rendering states and using draw call bundles. This avoids complex resource management in the kernel-mode driver, making possible multiple reentrant calls to the user-mode driver via concurrent executions contexts supplied by separate rendering threads in the same application.

Direct3D Mobile
Direct3D Mobile is derived from Direct3D but has a smaller memory footprint. Windows CE provides Direct3D Mobile support.

Alternative implementations
The following alternative implementations of Direct3D API exist. They are useful for non-Windows platforms and for hardware without some versions of DX support:

 * WineD3D – The Wine open source project has working implementations of the Direct3D APIs via translation to OpenGL. Wine's implementation can also be run on Windows under certain conditions.
 * vkd3d – vkd3d is an open source 3D graphics library built on top of Vulkan which allows to run Direct3D 12 applications on top of Vulkan. It's primarily used by the Wine project, and is now included with Valve's Proton project bundled with Steam on Linux.
 * DXVK – An open source Vulkan-based translation layer for Direct3D 9/10/11 which allows running 3D applications on Linux using Wine. It is used by Proton/Steam for Linux. DXVK is able to run a large number of modern Windows games under Linux.
 * D9VK – A fork of DXVK for adding Direct3D 9 support, included with Steam/Proton on Linux. On December 16, 2019 D9VK was merged into DXVK.
 * D8VK – A fork of DXVK for adding Direct3D 8 support on Linux.
 * Gallium Nine – Gallium Nine makes it possible to run Direct3D 9 applications on Linux natively, i.e. without any calls translation which allows for a near native speed. It depends on Wine and Mesa.

D3DX
Direct3D comes with D3DX, a library of tools designed to perform common mathematical calculations on vectors, matrices and colors, calculating look-at and projection matrices, spline interpolations, and several more complicated tasks, such as compiling or assembling shaders used for 3D graphic programming, compressed skeletal animation storage and matrix stacks. There are several functions that provide complex operations over 3D meshes like tangent-space computation, mesh simplification, precomputed radiance transfer, optimizing for vertex cache friendliness and stripification, and generators for 3D text meshes. 2D features include classes for drawing screen-space lines, text and sprite based particle systems. Spatial functions include various intersection routines, conversion from/to barycentric coordinates and bounding box/sphere generators. D3DX is provided as a dynamic link library (DLL). D3DX is deprecated from Windows 8 onward and can't be used in Windows Store apps.

Some features present in previous versions of D3DX were removed in Direct3D 11 and now provided as separate sources:

 * Windows SDK and Visual Studio
 * A large part of the math library has been removed. Microsoft recommends use of the DirectX Math library instead.
 * Spherical harmonics math has been removed and is now distributed as source.
 * The Effect framework has been removed and is now distributed as source via CodePlex.
 * The Mesh interface and geometry functions have been removed and are now distributed as source via CodePlex under DirectXMesh geometry processing library.
 * Texture functions have been removed and are now distributed as source via CodePlex under DirectXTex texture processing library.
 * General helpers have been removed and are now distributed as source via CodePlex under DirectX Tool Kit (DirectXTK) project.
 * The isochart texture atlas has been removed and is now distributed as source via CodePlex under UVAtlas project.

DXUT
DXUT (also called the sample framework) is a layer built on top of the Direct3D API. The framework is designed to help the programmer spend less time with mundane tasks, such as creating a window, creating a device, processing Windows messages and handling device events. DXUT have been removed with the Windows SDK 8.0 and now distributed as source via CodePlex.

title: Direct3D


text:
Breadth-first search

Breadth-first search (BFS) is an algorithm for searching a tree data structure for a node that satisfies a given property. It starts at the tree root and explores all nodes at the present depth prior to moving on to the nodes at the next depth level. Extra memory, usually a queue, is needed to keep track of the child nodes that were encountered but not yet explored.

For example, in a chess endgame, a chess engine may build the game tree from the current position by applying all possible moves and use breadth-first search to find a win position for White. Implicit trees (such as game trees or other problem-solving trees) may be of infinite size; breadth-first search is guaranteed to find a solution node if one exists.

In contrast, (plain) depth-first search (DFS), which explores the node branch as far as possible before backtracking and expanding other nodes, may get lost in an infinite branch and never make it to the solution node. Iterative deepening depth-first search avoids the latter drawback at the price of exploring the tree's top parts over and over again. On the other hand, both depth-first algorithms typically require far less extra memory than breadth-first search.

Breadth-first search can be generalized to both undirected graphs and directed graphs with a given start node (sometimes referred to as a 'search key'). In state space search in artificial intelligence, repeated searches of vertices are often allowed, while in theoretical analysis of algorithms based on breadth-first search, precautions are typically taken to prevent repetitions.

BFS and its application in finding connected components of graphs were invented in 1945 by Konrad Zuse, in his (rejected) Ph.D. thesis on the Plankalkül programming language, but this was not published until 1972. It was reinvented in 1959 by Edward F. Moore, who used it to find the shortest path out of a maze, and later developed by C. Y. Lee into a wire routing algorithm (published in 1961).

Pseudocode
Input: A graph $G$ and a starting vertex $root$ of $G$

Output: Goal state. The parent links trace the shortest path back to $root$

1 procedure BFS(G, root) is 2     let Q be a queue 3     label root as explored 4     Q.enqueue(root) 5     while Q is not empty do 6         v := Q.dequeue 7         if v is the goal then 8             return v 9         for all edges from v to w in G.adjacentEdges(v) do 10             if w is not labeled as explored then 11                 label w as explored 12                 w.parent := v 13                 Q.enqueue(w)

More details
This non-recursive implementation is similar to the non-recursive implementation of depth-first search, but differs from it in two ways:

If $G$ is a tree, replacing the queue of this breadth-first search algorithm with a stack will yield a depth-first search algorithm. For general graphs, replacing the stack of the iterative depth-first search implementation with a queue would also produce a breadth-first search algorithm, although a somewhat nonstandard one.
 * 1) it uses a queue (First In First Out) instead of a stack (Last In First Out) and
 * 2) it checks whether a vertex has been explored before enqueueing the vertex rather than delaying this check until the vertex is dequeued from the queue.

The Q queue contains the frontier along which the algorithm is currently searching.

Nodes can be labelled as explored by storing them in a set, or by an attribute on each node, depending on the implementation.

Note that the word node is usually interchangeable with the word vertex.

The parent attribute of each node is useful for accessing the nodes in a shortest path, for example by backtracking from the destination node up to the starting node, once the BFS has been run, and the predecessors nodes have been set.

Breadth-first search produces a so-called breadth first tree. You can see how a breadth first tree looks in the following example.

Example
The following is an example of the breadth-first tree obtained by running a BFS on German cities starting from Frankfurt:

Time and space complexity
The time complexity can be expressed as $$O(|V|+|E|)$$, since every vertex and every edge will be explored in the worst case. $$|V|$$ is the number of vertices and $$|E|$$ is the number of edges in the graph. Note that $$O(|E|)$$ may vary between $$O(1)$$ and $$ O(|V|^2)$$, depending on how sparse the input graph is.

When the number of vertices in the graph is known ahead of time, and additional data structures are used to determine which vertices have already been added to the queue, the space complexity can be expressed as $$O(|V|)$$, where $$|V|$$ is the number of vertices. This is in addition to the space required for the graph itself, which may vary depending on the graph representation used by an implementation of the algorithm.

When working with graphs that are too large to store explicitly (or infinite), it is more practical to describe the complexity of breadth-first search in different terms: to find the nodes that are at distance $d$ from the start node (measured in number of edge traversals), BFS takes $O(b^{d + 1})$ time and memory, where $b$ is the "branching factor" of the graph (the average out-degree).

Completeness
In the analysis of algorithms, the input to breadth-first search is assumed to be a finite graph, represented as an adjacency list, adjacency matrix, or similar representation. However, in the application of graph traversal methods in artificial intelligence the input may be an implicit representation of an infinite graph. In this context, a search method is described as being complete if it is guaranteed to find a goal state if one exists. Breadth-first search is complete, but depth-first search is not. When applied to infinite graphs represented implicitly, breadth-first search will eventually find the goal state, but depth first search may get lost in parts of the graph that have no goal state and never return.

BFS ordering
An enumeration of the vertices of a graph is said to be a BFS ordering if it is the possible output of the application of BFS to this graph.

Let $$G=(V,E)$$ be a graph with $$n$$ vertices. Recall that $$N(v)$$ is the set of neighbors of $$v$$. Let $$\sigma=(v_1,\dots,v_m)$$ be a list of distinct elements of $$V$$, for $$v\in V\setminus\{v_1,\dots,v_m\}$$, let $$\nu_{\sigma}(v)$$ be the least $$i$$ such that $$v_i$$ is a neighbor of $$v$$, if such a $$i$$ exists, and be $$\infty$$ otherwise.

Let $$\sigma=(v_1,\dots,v_n)$$ be an enumeration of the vertices of $$V$$. The enumeration $$\sigma$$ is said to be a BFS ordering (with source $$v_1$$) if, for all $$1<i\le n$$, $$v_i$$ is the vertex $$w\in V\setminus\{v_1,\dots,v_{i-1}\}$$ such that $$\nu_{(v_1,\dots,v_{i-1})}(w)$$ is minimal. Equivalently, $$\sigma$$ is a BFS ordering if, for all $$1\le i<j<k\le n$$ with $$v_i\in N(v_k)\setminus N(v_j)$$, there exists a neighbor $$v_m$$ of $$v_j$$ such that $$m<i$$.

Applications
Breadth-first search can be used to solve many problems in graph theory, for example:
 * Copying garbage collection, Cheney's algorithm
 * Finding the shortest path between two nodes u and v, with path length measured by number of edges (an advantage over depth-first search)
 * (Reverse) Cuthill–McKee mesh numbering
 * Ford–Fulkerson method for computing the maximum flow in a flow network
 * Serialization/Deserialization of a binary tree vs serialization in sorted order, allows the tree to be re-constructed in an efficient manner.
 * Construction of the failure function of the Aho-Corasick pattern matcher.
 * Testing bipartiteness of a graph.
 * Implementing parallel algorithms for computing a graph's transitive closure.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Breadth-first search


text:
Liverpool Street station

Liverpool Street station, also known as London Liverpool Street, is a major central London railway terminus and connected London Underground station in the north-eastern corner of the City of London, in the ward of Bishopsgate Without. It is the terminus of the West Anglia Main Line to Cambridge, the Great Eastern Main Line to Norwich, commuter trains serving east London and destinations in the East of England, and the Stansted Express service to Stansted Airport.

The station opened in 1874, as a replacement for Bishopsgate station as the Great Eastern Railway's main London terminus. By 1895, it had the most platforms of any London terminal station. During the First World War, an air raid on the station killed 16 on site, and 146 others in nearby areas. In the build-up to the Second World War, the station served as the entry point for thousands of child refugees arriving in London as part of the Kindertransport rescue mission. The station was damaged by the 1993 Bishopsgate bombing and, during the 7 July 2005 bombing, seven passengers were killed when a bomb exploded aboard an Underground train, just after it had departed from Liverpool Street. New platforms for the Elizabeth line opened in 2022 as part of the Crossrail project.

Liverpool Street was built as a dual-level station, with provision for the Underground. A tube station opened in 1875 for the Metropolitan Railway; the tube station is now served by the Central, Circle, Hammersmith & City and Metropolitan lines. It is in fare zone 1 and is managed directly by Network Rail. With 80.4 million passengers between March 2022 and April 2023, it was the busiest station in the United Kingdom, according to the Office of Rail and Road.

New terminus (1875)
Liverpool Street station was built as the new London terminus of the Great Eastern Railway (GER) which served Norwich and King's Lynn. The GER had been formed from the merger of several railway companies, inheriting Bishopsgate as its London terminus. Bishopsgate was inadequate for the company's passenger traffic; its Shoreditch location was in the heart of one of the poorest slums in London and hence badly situated for the City of London commuters the company wanted to attract. Consequently, the GER planned a more central station. The original intention was to build a terminus which reached as far south as the road London Wall, and which would be as tall as the Broad Street station which was being planned at the same time, however the city authorities did not permit the more southerly location.

By 1865, plans changed to include a circa 1 mile long line branching from the main line east of the company's existing terminus in Shoreditch, and a new station at Liverpool Street as the main terminus, with Bishopsgate station to be used for freight traffic. The station at Liverpool Street (the street had been named after the Tory Prime Minister Robert Jenkinson, 2nd Earl of Liverpool in 1829) was to be built for the use of the GER and of the East London Railway on two levels, with the underground East London line around 37 ft below this, and the GER tracks supported on brick arches. The station was planned to be around 630 by in area, with its main façade onto Liverpool Street and an additional entrance on Bishopsgate-Street (now called Bishopsgate and forming part of the A10). The main train shed was to be a two-span wood construction with a central void providing light and ventilation to the lower station, and the station buildings were to be in an Italianate style to the designs of the GER's architect.

The line and station construction were authorised by the Great Eastern Railway (Metropolitan Station and Railways) Act 1864. The station was built on a 10 acre site previously occupied by the Bethlem Royal Hospital, adjacent to Broad Street station, west of Bishopsgate and facing onto Liverpool Street to the south. The development land was compulsorily purchased, displacing around 3,000 residents of the parish of St Botolph-without-Bishopsgate. Around 7,000 people living in tenements around Shoreditch were evicted to complete the line towards Liverpool Street, while the City of London Theatre and City of London Gasworks were both demolished. To manage the disruption caused by rehousing, the company was required by the 1864 Act to run daily low-cost workmen's trains from the station.

The station was designed by GER engineer Edward Wilson and built by Lucas Brothers; the roof was designed and constructed by the Fairburn Engineering Company. The overall design was approximately Gothic, built using stock bricks and bath stone dressings. The building incorporated booking offices as well as the company offices of the GER, including chairman's, board, committee, secretary and engineers' rooms. The roof was spanned by four wrought iron spans, two central spans of 109 ft and outer spans of 46 and 44 ft, 730 ft in length over the eastern main lines, and 450 ft long over the local platforms; the station had 10 platforms, two of which were used for main-line trains and the remainder for suburban trains.

The station was built with a connection to the sub-surface Metropolitan Railway, with the platform sunk below ground level; consequently there are considerable gradients leaving the station. The Metropolitan Railway used the station as a terminus from 1 February 1875 until 11 July 1875; their own underground station opened on 12 July 1875, and the Metropolitan Railway connection was closed in 1904.

Local trains began serving the partially completed station from 2 October 1874, and it was fully opened on 1 November 1875, at a final cost of over £2 million. The original City terminus at Bishopsgate closed to passengers and was converted for use as a goods station from 1881. This continued until it was destroyed by fire in 1964.

The Great Eastern Hotel adjoining the new Liverpool Street station opened in May 1884. It was designed by Charles Barry Jr. (son of the celebrated architect Charles Barry who designed the Houses of Parliament). Upon opening, it was the only hotel in the City of London. An extension called the Abercon Rooms was built in 1901, designed by Colonel Robert William Edis. The hotel includes the Hamilton Rooms, named after former GER chairman Lord Claud Hamilton.

Expansion (1895)
Although initially viewed as an expensive white elephant, within 10 years the station was working at capacity (about 600 trains per day) and the GER was acquiring land to the east of the station for expansion. An Act of Parliament was obtained in 1888 and work started in 1890 on the eastward expansion of Liverpool Street by adding eight new tracks and platforms. This gave the station the most platforms of any London terminus until Victoria station was expanded in 1908.

The main station was extended about 230 ft eastwards; additional shops and offices were constructed east of the new train shed up to the parish boundary with Bishopsgate-Street Without. A new roof was built over the new construction. The outer wall was constructed with Staffordshire blue brick and Ruabon bricks. The four train shed roofs were carried out by Messrs. Handyside and Co., supervised by a Mr Sherlock, the resident engineer; all the foundations, earthwork and brickwork were carried out by Mowlem & Co. Electric power (for lighting) was supplied from an engine house north of the station. Additional civil works included three iron bridges carrying road traffic over the railway on Skinner, Primrose and Worship Streets. The bridge ironwork was supplied and erected by the Horseley Company. John Wilson was chief engineer, with W. N. Ashbee as architect. As part of the works, the GER was obliged by Parliament to rehouse all tenants displaced by the works, with 137 put into existing property and the remaining 600 into tenements constructed at the company's expense.

By the turn of the 20th century, Liverpool Street had one of the most extensive suburban rail services in London, including branches to Southend Victoria and Woodford, and was one of the busiest in the world. In 1912, around 200,000 passengers used the station daily on around 1,000 separate trains.

First World War and memorials (1917–1922)
Operation Turkenkreuz, the initial First World War biplane air raid on London, took place on 13 June 1917, when 20 Gotha G.IV bombers attacked the capital. The raid struck a number of sites including Liverpool Street. Seven tons of explosives were dropped on the capital, killing 162 people and injuring 432. Three bombs hit the station, of which two exploded, having fallen through the train shed roof, near to two trains. One of these hit a carriage on a train about to depart, another hit carriages used by army doctors; the death toll at the station itself was 16 dead and 15 injured. It was the deadliest single raid on Britain during the war.

Over 1,000 GER employees who died during the war were honoured on a large marble memorial installed in the booking hall, unveiled on 22 June 1922 by Sir Henry Wilson. On his return home from the unveiling ceremony, Wilson was assassinated by two Irish Republican Army members. He was commemorated by a memorial plaque adjoining the GER monument, unveiled one month after his death. The GER memorial was relocated during the modification of the station and now incorporates both the Wilson and Fryatt memorials, as well as a number of railway related architectural elements salvaged from demolished buildings.

The station also has a plaque commemorating mariner Charles Fryatt who was executed in 1916 for ramming a German U-boat with the GER steamer SS Brussels.

"Big Four" (1923–1945)
By the early 1900s, the success of deep-bore electric trains on the Underground suggested that local services out of London could also be electrified. Following the war, the GER needed more capacity out of Liverpool Street as it was at capacity (serving almost 230,000 passengers daily in 1921), but they could not afford electrification. They considered high-powered and high-tractive steam locomotives including the GER Class A55 as a possible alternative, but these were rejected because of high track loadings.

An alternative scheme was introduced, using a combination of automatic signalling and modifications to the layout at Liverpool Street. The station introduced coaling, watering, and other maintenance facilities directly at the station, as well as separate engine bays and a modified track and station layout that reduced turnaround times and increased productivity. Services began on 2 July 1920 with trains to Chingford and Enfield running every 10 minutes. The cost of the modifications was £80,000 compared to an estimated £3 million for electrification. The service was officially called the Intensive Service (as it allowed a 50% increase in capacity on peak services), but became popularly known as the Jazz Service. It lasted until the General Strike of 1926, following which services generally declined.

The GER amalgamated with several other railways to form the London and North Eastern Railway (LNER) as part of the reorganisation of railway companies in 1923. Liverpool Street came under ownership of the LNER, and suffered from a general lack of attention and neglect throughout the 1930s.

Station staff 1935
The station master in 1935 was H C R Calver and he had 395 staff under him with his direct reports, including ticket office, parcels staff, signalmen, platform inspectors and porters. Of this number, 75 were passed for fogging duties for when additional staff were required for safe operation of trains in foggy conditions.

In addition to this there were many other staff employed at the station on a variety of duties including policemen (uniformed and plain clothes), locomotive staff, permanent way staff, carriage and wagon examiners, steam heat examiners, electric and gas examiners, telegraph staff, linemen, signal fitters, Goods Manager's Despatch Office staff, outside porters, hotel porters, staff from the continental office and GPO staff.

The former headquarters building of the GER (still a railway office in 1935) was adjacent to Liverpool Street and some departments in that building also had roles in the operation of the station.

Further to that the newspaper companies provided their own staff to load newspaper trains.

Signal box operation 1935
In 1935 the approaches to Liverpool Street and the station itself, were controlled by seven signal boxes, which fell under the responsibility of the Liverpool Street station master. The boxes were:
 * East London Junction - this was primarily for traffic to and from the East London Line and in 1935 a route onto the Southern Railway via Whitechapel
 * Bishopsgate North - this box controlled the suburban line only; it was situated on the former (closed 1916) Bishopsgate Low Level down suburban platform.
 * Bishopsgate South - stood on the former Down Local platform of Bishopsgate Low Level and controlled traffic on the Local and Through lines.
 * Liverpool Street West - was the controlling box for the station working. All trains were block signalled, irrespective of whether they were running into the west or east side of the station. The box had 203 active levers and 37 spare and during the busiest period of the day there were six signalmen on duty along with a telephone and booking lad. A train to Liverpool Street East Box would be block signalled from the West box.
 * Liverpool Street East - situated at the country end of Platform 11; it had 127 active and 9 spare levers, and controlled traffic passing on or off the Local or Through lines, into or out of platforms 11 to 18. Departing trains would be despatched to the west box.
 * The remaining two signal boxes were platform boxes whose purpose was to electrically lock a platform out when a train had arrived in it. The platform would not be freed (so other trains could not be routed into it) until all the vehicles brought into it were cleared and the platform was again ready for another train to be accepted. These boxes were located at the country ends of Platform 4/5 and 14/15.

Second World War
Thousands of Jewish refugee children arrived at Liverpool Street in the late 1930s as part of the Kindertransport rescue mission to save them in the run up to the Second World War. The Für Das Kind Kindertransport Memorial sculpture by artist Flor Kent was installed at the station in September 2003 commemorating this event. It consisted of a specialised glass case with original objects and a bronze sculpture of a girl, a direct descendant of a child rescued by Nicholas Winton, who unveiled the work. The objects included in the sculpture began to deteriorate in bad weather, and a replacement bronze memorial, Kindertransport – The Arrival by Frank Meisler was installed as a replacement at the main entrance in November 2006. The child statue from the Kent memorial was re-erected separately in 2011.

During the war, the station's structure sustained damage from a nearby bomb, particularly the Gothic tower at the main entrance on Liverpool Street and its glass roof.

As a precautionary measure the large and weighty West Side hanging clock was brought down to platform level and served as an enquiry office for the duration of the war.

Nationalisation (1946–91)
After the formation of the London Passenger Transport Board in 1933, work to electrify the line from Liverpool Street to Shenfield began in association with the LNER. Progress had been halted by the war but work resumed after the end of hostilities. The line between Liverpool Street and Stratford was electrified from 3 December 1946, and the full electrification of the Shenfield line at 1500 V DC was completed in September 1949. At the same time, electrification of London Underground services in Essex and in northeast and east London led to the withdrawal of some services from Liverpool Street, being replaced with LU operations. Electrification continued with the line to Chingford electrified by November 1960. In 1960-61 conversion of the 1,500 V DC route to Shenfield which had been extended to Southend and Chelmsford was converted to 6.25kV AC.

In 1973 the British Railways Board, London Transport Executive, Greater London Council and the Department of the Environment produced a report examining the modernisation of London transport. It recommended high priority given to reconstructing Liverpool Street and Broad Street stations and recommended financing this through property development on the site. Liverpool Street had a number of design and access issues, many of which derived from the 1890 extension which had effectively created two stations on one site, with two concourses linked by walkways, booking halls, and inefficient traffic flows within the station. Additionally the rail infrastructure presented limitations; only seven of the platforms could accommodate 12-carriage trains, and the track exit layout was a bottleneck. In 1975 British Railways announced plans to demolish and redevelop both stations. The proposed demolition met considerable public opposition and prompted a campaign led by the Poet Laureate Sir John Betjeman, leading to a public inquiry from November 1976 to February 1977.

In autumn 1980 conversion of the overhead electrification from 6.25kV AC to the standard supply of 25kV AC. The inquiry recommended that the western (1875) train shed roof should be retained in new development; consequently it was repaired and reinforced between 1982 and 1984, followed by repairs to the main roof completed in 1987. Initial plans included adding two additional tracks, with 22 platforms in a layout similar to that of Waterloo station; the combined Broad Street and Liverpool Street station was to be at the level of the latter, with relatively low-rise office developments. The development was reassessed in 1983/4, when it was decided to retain the existing six-road exit throat and 18-platform layout, in combination with resignalling; this resulted in a station confined to the Liverpool Street site, with ground space released for development. British Railways signed an agreement with developers Rosehaugh Stanhope in 1985, and work on the office development, known as Broadgate, began.

Railway work included the construction of a short link from the North London Line to the Cambridge main line, allowing trains that had previously used Broad Street to terminate at Liverpool Street. The station was reconstructed with a single concourse at the head of the station platforms, and entrances from Bishopsgate and Liverpool Street, as well as a bus interchange in the south west corner. The Broadgate development was constructed between 1985 and 1991, with 330000 m2 of office space on the site of the former Broad Street station and above the Liverpool Street tracks. Proceeds from the Broadgate development were used to help fund the station modernisation.

In 1988, The Arcade above the underground station on the corner of Liverpool Street and Old Broad Street was due to be completely demolished by London Regional Transport and MEPC, who wanted to develop the site into a five-storey block of offices and shops. More than 6,000 people signed a petition to "Save the Arcade", and the historic Victorian building still stands today. The campaign against the development was led by Graham Horwood, who owned an employment agency within the Arcade at the time.

In 1989, the first visual display unit-controlled signalling operation on British Rail (known as an Integrated Electronic Control Centre) became operational at Liverpool Street.

The redeveloped Liverpool Street was officially opened by Queen Elizabeth II on 5 December 1991. At that time a giant departures board was installed above the concourse; it was one of the last remaining mechanical 'flapper' display boards at a British railway station until its replacement in November 2007.

Recent history and privatisation (1991–present)
In 1991, an additional entrance was constructed on the east side of Bishopsgate with a subway under the road. The station was "twinned" with Amsterdam Centraal railway station on 2 December 1993, with a plaque marking this close to the entrance to the Underground station.

The station was badly damaged on 24 April 1993 by the Bishopsgate bombing and was temporarily closed as a result. About £250,000 of damage was caused to the station, primarily to the glass roof. The station re-opened on 26 April 1993.

In 2013, during excavation work for the Crossrail project, a 2 acre mass burial ground dating from the 17th century was uncovered a few feet beneath the surface at Liverpool Street, the so-called Bedlam burial ground or New Churchyard. It contained the remains of several hundred people and it is thought that the interments were of a wide variety of people, including plague victims, prisoners and unclaimed corpses. A 16th-century gold coin, thought to have been used as a sequin or pendant, was also found. In early 2015 full scale excavation of the burials began, then estimated at around 3,000 interments.

In advance of the full opening of the Elizabeth line, precursor operator TfL Rail took over from Greater Anglia the Liverpool Street-Shenfield stopping "metro" service from 2015. At the same time, services on the Lea Valley Lines out of Liverpool Street to Enfield Town, Cheshunt (via Seven Sisters) and Chingford transferred to London Overground. The central section of the Elizabeth line opened on 24 May 2022 between Paddington and Abbey Wood. The Elizabeth line platforms are to the south-west of the existing tube station building. A new ticket hall with step-free access opened next to the Broadgate development, with links to the existing Underground station, and a pedestrian link via the new platforms to the ticket hall of Moorgate, providing direct access to London Underground's Northern line and the National Rail Northern City Line at Moorgate. Thus, Liverpool Street appears on the Tube map as an interchange with Moorgate, similarly to and.

Services
In the 12 months to 31 March 2020, immediately before travel restrictions were introduced as a result of the COVID-19 pandemic, Liverpool Street was the third-busiest railway station in the United Kingdom, after London Waterloo and London Victoria, with an estimated 66 million passenger entries and exits. Patronage fell by 83% in the 12 months to 31 March 2021, to 11.2 million entries and exits, as a result of the pandemic.

In 2022 / 2023, it was ranked as the busiest station in the UK, with 80.4 million entries and exits, the increase being attributed to the opening of the Elizabeth line in May 2022.

Trains depart from the main line station for destinations across the east of England, including Norwich, Southminster, Ipswich, Clacton-on-Sea, Colchester, Chelmsford, Southend Victoria, Cambridge, Harlow Town, Hertford East, Broxbourne and many suburban stations in north and east London, Essex and Hertfordshire. A few daily express trains to Harwich International provide a connection with the Dutchflyer ferry to Hook of Holland. Stansted Express trains provide a link to Stansted Airport and Southend Victoria-bound services stop at Southend Airport.

Most passenger services on the Great Eastern Main Line are operated by Greater Anglia. Since 2015, the Shenfield stopping service has been operated by Transport for London (first under the TfL Rail brand, now the Elizabeth line), and the Lea Valley Lines to Enfield Town, Cheshunt (via Seven Sisters) and Chingford are operated by London Overground. A small number of late-evening and weekend services operated by c2c run via Barking. The station is split into two “halves”: the "west" side for the Lea Valley Lines services and the "east" side for services via Shenfield.

Trains on the central section of the Elizabeth line run west towards Paddington and east to Abbey Wood in south-east London.

The typical off-peak weekday service pattern from Liverpool Street is:

Services
Liverpool Street Underground station is served by the Central, Circle, Hammersmith & City and Metropolitan lines, and is the sixth-busiest on the London Underground network. On the Central line it is between Bank and Bethnal Green stations, on Circle and Metropolitan lines between Aldgate and Moorgate and, on Hammersmith and City, between Aldgate East and Moorgate. In common with other tube stations serving Central London termini, it is in fare zone 1. There is no wheelchair access to the tube lines, except from the eastbound Circle, Hammersmith & City and Metropolitan lines, which have a ramp leading to the platform.

History
Liverpool Street had been designed to integrate with the expanding London Underground network, and served as a new terminus for the Metropolitan Railway (MR) which extended east from Moorgate. From 1874 to 1875, the MR used the Liverpool Street main line station as a terminus; the company opened its own station on 12 July 1875, initially named Bishopsgate. Subsurface platforms 1 and 2 were opened in 1875. A west-facing bay platform, platform 3, was formerly located to the south of platform 2; this was used by terminating Metropolitan line trains from the west. It was in use by 1896, and was still in use in 1974, but was redundant by 1994.

The underground station was renamed Liverpool Street on 1 November 1909. In 1912, after the completion of an extension project from Bank, the underground station became a new terminus of the Central London Railway (CLR). The platforms that are now the deep-level Central line platforms 4 and 5 opened as the eastern terminus of the CLR on 28 July 1912. The tube station was one of the first to use the Moore Vacuum Tube, a new system of lighting that produced three times as much as a normal bulb.

The tube station became one of the principal shelters during the Blitz. The station was not initially open to the public as a shelter, but during heavy raids on the East End on 7 September 1940, many sought refuge at the station, which was the safest and most practical shelter for many. Some sources suggest that the local people forced entry, others that staff decided to open the gates to everyone without asking for tickets, something which would have been technically illegal.

On 4 December 1946, the passenger line was extended eastwards as part of the war-delayed London Passenger Transport Board's New Works Programme. An Underground ticket hall was added in 1951.

During the 7 July 2005 terrorist attacks on London, a bomb was exploded aboard an Underground train that had departed Liverpool Street toward Aldgate. Seven passengers were killed.

London Post Office Railway station
The Liverpool Street Post Office Railway station is a disused station that was operated by Royal Mail on the London Post Office Railway system.

The station is between Mount Pleasant Mail Centre and Whitechapel Eastern District Post Office, and is situated at the south end of Liverpool Street under the Great Eastern Hotel. It opened in December 1927; lifts on either side of the station as well as chutes enabled the transfer of mail to and from the main station. Two 315 ft parcel and letter bag conveyors were connected to platforms 10 and 11 (currently used by Greater Anglia); postal traffic reached 10,000 bags daily in the 1930s, with 690 Post Office services calling. The system was discontinued in 2003.

In 2014, a team from the University of Cambridge began conducting a study in a short, double track section of unused tunnel near the platforms where a newly built tunnel for Crossrail is situated almost two metres beneath. The study is to establish how the original cast-iron lining sections, which are similar to those used for many miles of railway under London, resist possible deformation and soil movement caused by the developments.

London Underground
The Central line runs directly below Shoreditch High Street on the London Overground's East London Line and an interchange has been desired locally in neighbouring Shoreditch since it opened in 2010. The new platforms would lie between Bethnal Green and Liverpool Street on one of the longest gaps between stations in inner London. Although there would be benefits to this interchange, it was ruled out on grounds of cost, the disruption it would cause to the Central line while being built, and because the platforms would be too close to sidings at Liverpool Street; the proposal will not be reconsidered until after the Elizabeth line is fully operational.

Freight trial
A freight trial between Liverpool Street and London Gateway was planned to start in April or May 2020, using a Class 769 bi-mode train.

Cultural references
Liverpool Street is one of the four railway stations present on the British version of Monopoly, along with King's Cross, Fenchurch Street and Marylebone. All four stations were termini of LNER services when Victor Watson redesigned the game for the British market in 1936.

The station features in several fictional terrorist attacks: in Andy McNab's novel Dark Winter the station is the target of an attack; in London Under Attack, a 2004 Panorama docu-drama portrayal of a terrorist attack on London using chlorine gas; and the drama Dirty War (2004) portrayed a suicide terrorist attack using a "dirty bomb" near the Underground station.

The station has also been used as a backdrop for a number of other film and television productions, including espionage films Stormbreaker (2006) and Mission: Impossible (1996), and crime drama The Shadow Line (2011), as well as the site for staged flash mobs in the film St. Trinian's 2: The Legend of Fritton's Gold (2009), and for a T-Mobile advert.

In the music video for "Taxloss" by Mansun, directed by Roman Coppola, £25,000 in five pound notes was dropped onto commuters at the station.

H. G. Wells's 1898 novel The War of The Worlds included a chaotic rush to board trains at Liverpool Street as the Martian machines overran military defences in the West End.

The station is the subject of the poem "Liverpool Street Station" by John Davidson.

"Through crystal roofs the sunlight fell, And pencilled beams the gloss renewed On iron rafters balanced well On iron struts; though dimly hued. With smoke o'erlaid, with dust endued. The walls and beams like beryl shone; And dappled light the platforms strewed With yellow foliage of the dawn That withered by the porch of day's divan."

title: Liverpool Street station


text:
Château-Thierry

Château-Thierry (Picard: Catieu-Thierry) is a French commune situated in the department of the Aisne, in the administrative region of Hauts-de-France, and in the historic Province of Champagne.

The origin of the name of the town is unknown. The local tradition attributes it to Theuderic IV, the penultimate Merovingian king, who was imprisoned by Charles Martel, without a reliable source. Château-Thierry is the birthplace of Jean de La Fontaine and was the location of the First Battle of the Marne and Second Battle of the Marne. The arrondissement of Château-Thierry is called the country of Omois. Château-Thierry is one of 64 French towns to have received the Legion of Honour.

History

In the late years of the western Roman empire, a small town called Otmus was settled on a site where the Soissons-Troyes road crossed the Marne river. During the 8th century, Charles Martel kept king Theuderic IV prisoner in the castle of Otmus. At this time, the town took the name of Castrum Theodorici, later transformed in Château-Thierry (Castle of Thierry, Thierry is the French or early Roman language translation of Theuderic).

In 946, the castle of Château-Thierry was the home of Herbert le-Vieux, Count of Omois of the House of Vermandois and Soissons.

Formerly the capital of the district of Brie Pouilleuse, Château-Thierry was captured by the English in 1421; by Charles V, Holy Roman Emperor, in 1544; and by the duke of Mayenne in 1591.

Château-Thierry was the site of two important battles: the Battle of Château-Thierry (1814) in the Napoleonic Wars between France and Prussia, and the Battle of Château-Thierry (1918) in World War I between the United States and Germany.

In 1918, a mounting for the Paris Gun was found near the castle, though the cannon itself had apparently been moved prior to the emplacement's discovery.

Geography
Château-Thierry is situated on the river Marne, at 90 km from Paris.

Transport
Château-Thierry station is the terminus station of a regional railway line starting from the Gare de l'Est in Paris. Furthermore, it has rail connections to Châlons-en-Champagne, Nancy and Strasbourg. It is also one of the exits of the A4 autoroute that links Paris with the east part of France. Transval operates the local bus routes.

Personalities
Château-Thierry was the birthplace of:
 * Walter of Château-Thierry (died 1249) a French theologian and scholastic philosopher.
 * Samuel ben Solomon of Falaise 13th-century rabbi (one of the proponents of the Talmud during the Disputation of Paris).
 * Jean de La Fontaine (1621–1695), a fabulist and poet, known best for his Fables.
 * Jean-Baptiste Dumangin (1744–1826), French physician who performed the autopsy of Louis XVII.
 * Louis Jean-Baptiste Leseur (1774–1818), army general of the French First Republic and the First French Empire.
 * Chevalier de Saint-Georges (1745–1799), a French Creole virtuoso violinist and composer
 * Antoine Menant (1762-1829), army general of the French First Republic and the First French Empire, born in Lyon and died in Château-Thierry.
 * Charles Martigue (1777-1825), cavalry colonel of the armies of the French First Republic and the First French Empire.
 * Jean Macé (1815–1894), an educator, journalist, active freemason and politician.
 * Maurice Holleaux (1861–1932), 19th– to 20th-century French historian, archaeologist and epigrapher.
 * Jules Guiart (1870-1965), parasitologist and medical historian, was born in the city.
 * Achille Jacopin (1874-1958), sculptor.
 * François Aman-Jean (1894–1986) physician, surgeon, writer and playwright
 * Teddy Roosevelt's son Quentin (1897–1918) was shot down while flying a French SPAD plane during WWI.
 * Charles Schneider (glassmaker) (1881-1953), glassworker.
 * Ba Jin (1904–2005), a Chinese writer and intellectual, stayed here in 1927 and 1928.
 * Auguste Jordan (1909-1990), Austrian professional footballer who played on the French national team.
 * Léon Hess, creator of the "Le Castel" gâteau du voyageur, who won a gold medal at the 1912 Exposition Culinaire Internationale in Paris.
 * Nadia Tagrine (1917-2003), pianist.
 * Manu Dibango (1933–2020) a Cameroonian musician and songwriter
 * Yves Bot (1947–2019), magistrate.
 * Pierre Bensusan (born 1957) a French-Algerian acoustic guitarist.
 * The novel The Greengage Summer (1958) of Rumer Godden (1907–1998) is set in Château-Thierry.
 * and
 * Sylvain Lévignac, actor and stuntman, died in Château-Thierry.
 * Charles Ferton père.
 * Edmond de Tillancourt.
 * Charles-Armand de Rougé.
 * Guillaume-Benoît Houdet.

Sights

 * Castle walls
 * Saint-Crépin church (15th century)
 * Balhan tower
 * Marne River
 * World War I Aisne-Marne American Cemetery and Memorial (south of the village of Belleau)
 * Chateau-Thierry American Monument (overlooking the town)
 * Champagne vineyards
 * Several churches

Twin towns – sister cities
Château-Thierry is twinned with:
 * 🇷🇴 Cisnădie, Romania (1997)
 * 🇵🇱 Grybów (rural gmina), Poland
 * 🇩🇪 Mosbach, Germany (1974)
 * 🇩🇪 Pößneck, Germany (1989)

title: Château-Thierry


text:
User:Olrick

More later :)

title: User:Olrick