BrepGen: A B-rep Generative Diffusion Model with Structured Latent Geometry
On the map: Diffusion models → 3D, point cloud and scene generation
Abstract (arXiv)
This paper presents BrepGen, a diffusion-based generative approach that directly outputs a Boundary representation (B-rep) Computer-Aided Design (CAD) model. BrepGen represents a B-rep model as a novel structured latent geometry in a hierarchical tree. With the root node representing a whole CAD solid, each element of a B-rep model (i.e., a face, an edge, or a vertex) progressively turns into a child-node from top to bottom. B-rep geometry information goes into the nodes as the global bounding box of each primitive along with a latent code describing the local geometric shape. The B-rep topology information is implicitly represented by node duplication. When two faces share an edge, the edge curve will appear twice in the tree, and a T-junction vertex with three incident edges appears six times in the tree with identical node features. Starting from the root and progressing to the leaf, BrepGen employs Transformer-based diffusion models to sequentially denoise node features while duplicated nodes are detected and merged, recovering the B-Rep topology information. Extensive experiments show that BrepGen advances the task of CAD B-rep generation, surpassing existing methods on various benchmarks. Results on our newly collected furniture dataset further showcase its exceptional capability in generating complicated geometry. While previous methods were limited to generating simple prismatic shapes, BrepGen incorporates free-form and doubly-curved surfaces for the first time. Additional applications of BrepGen include CAD autocomplete and design interpolation. The code, pretrained models, and dataset are available at https://github.com/samxuxiang/BrepGen.
Key facts. Cited by 103 papers in the map (data through 14 Oct 2026). Placed in 3D, point cloud and scene generation, one of 14 directions in Diffusion models. Builds on 41 of its 61 references that are in the map. First posted on arXiv 28 Jan 2024.
Builds on
41 of 61 references.
Closest ancestors · 3
Same direction, newest first
- 2023PolyDiff: Generating 3D Polygonal Meshes with Diffusion Models18 Dec
- 2022HouseDiffusion: Vector Floorplan Generation via a Diffusion Model with Discrete and Continuous Denoising23 Nov
- 2022RePaint: Inpainting using Denoising Diffusion Probabilistic Models24 Jan
Other references · 38
- 2017Attention Is All You Needcited by 60,361
- 2020Denoising Diffusion Probabilistic Modelscited by 21,076
- 2021High-Resolution Image Synthesis with Latent Diffusion Modelscited by 18,863
- 2022Classifier-Free Diffusion Guidancecited by 5,847
- 2021Cascaded Diffusion Models for High Fidelity Image Generationcited by 1,163
- 2015Pointer Networkscited by 895
- 2022Pseudo Numerical Methods for Diffusion Models on Manifoldscited by 700
- 2021Argmax Flows and Multinomial Diffusion: Learning Categorical Distributionscited by 574
- 2018ABC: A Big CAD Model Dataset For Geometric Deep Learningcited by 341
- 2021DeepCAD: A Deep Generative Network for Computer-Aided Design Modelscited by 271
- 2020PolyGen: An Autoregressive Generative Model of 3D Meshescited by 269
- 2023MeshGPT: Generating Triangle Meshes with Decoder-Only Transformerscited by 259
26 more
- 2019BSP-Net: Generating Compact Meshes via Binary Space Partitioningcited by 206
- 2022Neural Wavelet-domain Diffusion for 3D Shape Generationcited by 132
- 2022SkexGen: Autoregressive Generation of CAD Construction Sequences with Disentangled Codebookscited by 125
- 2017CSGNet: Neural Shape Parser for Constructive Solid Geometrycited by 106
- 2020ParSeNet: A Parametric Surface Fitting Network for 3D Point Cloudscited by 96
- 2021BRepNet: A topological message passing system for solid modelscited by 95
- 2019Write, Execute, Assess: Program Synthesis with a REPLcited by 93
- 2018Supervised Fitting of Geometric Primitives to 3D Point Cloudscited by 91
- 2023Hierarchical Neural Coding for Controllable CAD Model Generationcited by 86
- 2022SolidGen: An Autoregressive Model for Direct B-rep Synthesiscited by 80
- 2020UCSG-Net -- Unsupervised Discovering of Constructive Solid Geometry Treecited by 78
- 2021JoinABLe: Learning Bottom-up Assembly of Parametric CAD Jointscited by 78
- 2020PIE-NET: Parametric Inference of Point Cloud Edgescited by 67
- 2021CAPRI-Net: Learning Compact CAD Shapes with Adaptive Primitive Assemblycited by 62
- 2023CAGE: Controllable Articulation GEnerationcited by 52
- 2021CSG-Stump: A Learning Friendly CSG-Like Representation for Interpretable Shape Parsingcited by 51
- 2021Inferring CAD Modeling Sequences Using Zone Graphscited by 50
- 2021Engineering Sketch Generation for Computer-Aided Designcited by 49
- 2023SECAD-Net: Self-Supervised CAD Reconstruction by Learning Sketch-Extrude Operationscited by 46
- 2022ExtrudeNet: Unsupervised Inverse Sketch-and-Extrude for Shape Parsingcited by 38
- 2020Fusion 360 Gallery: A Dataset and Environment for Programmatic CAD Construction from Human Design Sequencescited by 36
- 2022Self-Supervised Representation Learning for CADcited by 22
- 2022Neural Face Identification in a 2D Wireframe Projection of a Manifold Objectcited by 18
- 2022ComplexGen: CAD Reconstruction by B-Rep Chain Complex Generationcited by 17
- 2021AutoMate: A Dataset and Learning Approach for Automatic Mating of CAD Assembliescited by 13
- 2018"FabSearch" : A 3D CAD Model Based Search Engine for Sourcing Manufacturing Servicescited by 7
Built on by
Citing papers per year: 2024: 16; 2025: 32; 2026: 55.
103 papers.
Sort:
By area:
- 20243DTopia-XL: Scaling High-quality 3D Asset Generation via Primitive Diffusioncited by 101
- 2024EdgeRunner: Auto-regressive Auto-encoder for Artistic Mesh Generationcited by 87
- 2024CAD-MLLM: Unifying Multimodality-Conditioned CAD Generation With MLLMcited by 81
- 2024SINGAPO: Single Image Controlled Generation of Articulated Parts in Objectscited by 69
- 2025Efficient Part-level 3D Object Generation via Dual Volume Packingcited by 48
- 2025Text-to-CAD Generation Through Infusing Visual Feedback in Large Language Modelscited by 47
- 2025Text-to-CadQuery: A New Paradigm for CAD Generation with Scalable Large Model Capabilitiescited by 43
- 2025CAD-Coder: An Open-Source Vision-Language Model for Computer-Aided Design Code Generationcited by 43
- 2024GenCAD: Image-Conditioned Computer-Aided Design Generation with Transformer-Based Contrastive Representation and Diffusion Priorscited by 38
- 2024Img2CAD: Conditioned 3D CAD Model Generation from Single Image with Structured Visual Geometrycited by 37
- 2025CADCrafter: Generating Computer-Aided Design Models from Unconstrained Imagescited by 35
- 2024An Object is Worth 64x64 Pixels: Generating 3D Object via Image Diffusioncited by 34
38 more
- 2024FlexCAD: Unified and Versatile Controllable CAD Generation with Fine-tuned Large Language Modelscited by 34
- 2025HoLa: B-Rep Generation using a Holistic Latent Representationcited by 30
- 2024TransCAD: A Hierarchical Transformer for CAD Sequence Inference from Point Cloudscited by 29
- 2025CADDreamer: CAD Object Generation from Single-view Imagescited by 25
- 2025Seek-CAD: A Self-refined Generative Modeling for 3D Parametric CAD Using Local Inference via DeepSeekcited by 24
- 2025DTGBrepGen: A Novel B-rep Generative Model through Decoupling Topology and Geometrycited by 21
- 2024DeBaRA: Denoising-Based 3D Room Arrangement Generationcited by 20
- 2024Design2GarmentCode: Turning Design Concepts to Tangible Garments Through Program Synthesiscited by 18
- 2025AutoBrep: Autoregressive B-Rep Generation with Unified Topology and Geometrycited by 17
- 2025cadrille: Multi-modal CAD Reconstruction with Reinforcement Learningcited by 16
- 2024Geometric Deep Learning for Computer-Aided Design: A Surveycited by 14
- 2025BrepGPT: Autoregressive B-rep Generation with Voronoi Half-Patchcited by 13
- 2026Text2CAD-Bench: A Benchmark for LLM-based Text-to-Parametric CAD Generationcited by 12
- 2025ArtiLatent: Realistic Articulated 3D Object Generation via Structured Latentscited by 11
- 2026Pointer-CAD: Unifying B-Rep and Command Sequences via Pointer-based Edges & Faces Selectioncited by 11
- 2025CAD-Judge: Toward Efficient Morphological Grading and Verification for Text-to-CAD Generationcited by 10
- 2026IterCAD: An Iterative Multimodal Agent for Visually-Grounded CAD Generation and Editingcited by 10
- 2025GarmentDiffusion: 3D Garment Sewing Pattern Generation with Multimodal Diffusion Transformerscited by 9
- 2025CAD-Coder:Text-Guided CAD Files Code Generationcited by 9
- 2024NeuroNURBS: Learning Efficient Surface Representations for 3D Solidscited by 8
- 2026Zero-to-CAD: Agentic Synthesis of Interpretable CAD Programs at Million-Scale Without Real Datacited by 8
- 2025RLCAD: Reinforcement Learning Training Gym for Revolution Involved CAD Command Sequence Generationcited by 7
- 2025CLR-Wire: Towards Continuous Latent Representations for 3D Curve Wireframe Generationcited by 7
- 2026Towards High-Fidelity CAD Generation via LLM-Driven Program Generation and Text-Based B-Rep Primitive Groundingcited by 7
- 2026MeshFlow: Efficient Artistic Mesh Generation via MeshVAE and Flow-based Diffusion Transformercited by 7
- 2024Don't Mesh with Me: Generating Constructive Solid Geometry Instead of Meshes by Fine-Tuning a Code-Generation LLMcited by 6
- 2025Revisiting CAD Model Generation by Learning Raster Sketchcited by 6
- 2025CMT: A Cascade MAR with Topology Predictor for Multimodal Conditional CAD Generationcited by 6
- 2025NURBGen: High-Fidelity Text-to-CAD Generation through LLM-Driven NURBS Modelingcited by 6
- 2026CADReasoner: Iterative Program Editing for CAD Reverse Engineeringcited by 6
- 2025GeoCAD: Local Geometry-Controllable CAD Generation with Large Language Modelscited by 5
- 2025SketchDNN: Joint Continuous-Discrete Diffusion for CAD Sketch Generationcited by 5
- 2026CADFS: A Big CAD Program Dataset and Framework for Computer-Aided Design with Large Language Modelscited by 5
- 2025GarmageNet: A Multimodal Generative Framework for Sewing Pattern Design and Generic Garment Modelingcited by 4
- 2026CADFit: Precise Mesh-to-CAD Program Generation with Hybrid Optimizationcited by 4
- 2026MeshFlow: Mesh Generation with Equivariant Flow Matchingcited by 4
- 2026Embodied CAD: Solver-Grounded LLM Agents for Parametric B-Rep Assembly Modelingcited by 4
- 2024Exploring the Potentials and Challenges of Deep Generative Models in Product Design Conceptioncited by 3
50 most cited of 103 All 103 (JSON)
- 2026UniBRep: Learning Unified Geometry and Topology for Image-conditioned B-Rep Generation2 Oct 2026
- 2026StepCAD: Mesh-to-CAD Code Generation via LLM Policy and Geometry-Guided Search1 Oct 2026
- 2026DepthBenchCAD: When Does Deeper Auditing Yield More Reliable Conclusions?14 Sep 2026
- 2026Learn the Solid, Not the File: Canonical Inputs for Neural Networks on CAD Boundary Representations10 Sep 2026
- 2026LLM-Aided Design for Manufacturing: A Multi-Agent System for Intent-Preserving Redesign of CAD for Improved Manufacturability3 Sep 2026
- 2026VisCAD: A Foundation Model Suite with Multimodal Industrial CAD Intelligence3 Sep 2026
- 2026AgenticCADedit: A Stateful, Tool-Mediated Agentic Approach to Multimodal 3D CAD Editing28 Aug 2026
- 2026HiFi-BRep: High-Fidelity Latent Representation for Robust B-Rep Generation17 Aug 2026
- 2026RA-CAD: Learning Post-Execution Critique for State-Aware Text-to-CAD Generation6 Aug 2026
- 2026Towards Valid B-Rep Generation: Training-Free Wireframe Anomaly Detection and Repair5 Aug 2026
- 2026TraceCAD: Trace-Guided Repair for Agentic CAD Generation4 Aug 2026
- 2026CADIR: A Cross-Backend Editable Intermediate Representation for Agentic CAD Generation1 Aug 2026
38 more
- 2026AIMold: An Autonomous AI-based Pipeline for Complex Mold Design1 Aug 2026
- 2026CADENA: Stepwise CAD Reverse Engineering1 Aug 2026
- 2026Autoregressive B-Rep Shape Generation with Parametric Surfaces19 Jul 2026
- 2026HierCAD: Hierarchical Text-to-CAD Design via Structure Alignment and Parameter Grounding13 Jul 2026
- 2026Three-Phase Evaluation of AI-Assisted Software Development Life Cycle6 Jul 2026
- 2026NURBS Splatting: A Unified Differentiable Rendering Framework for Vector Graphics30 Jun 2026
- 2026DualBrep: A Dual-Field Continuous Representation for B-rep Modelling30 Jun 2026
- 2026Embodied CAD: Solver-Grounded LLM Agents for Parametric B-Rep Assembly Modeling30 Jun 2026
- 2026Arko-T: A Foundation Model for Text-to-Structured 3D Generation29 Jun 2026
- 2026Arbor: Explicit Geometric Conditioning for Controllable 3D Asset Generation22 Jun 2026
- 2026MeshFlow: Mesh Generation with Equivariant Flow Matching22 Jun 2026
- 2026FllumaOne: A Code-Native Multimodal CAD Dataset with Executable Programs and Kernel-Validated Feature Histories16 Jun 2026
- 2026IterCAD: An Iterative Multimodal Agent for Visually-Grounded CAD Generation and Editing11 Jun 2026
- 2026GuideCAD: A Lightweight Multimodal Framework for 3D CAD Model Generation via Prefix Embedding5 Jun 2026
- 2026UniCAD: A Unified Benchmark and Universal Model for Multi-Modal Multi-Task CAD3 Jun 2026
- 2026MeshFlow: Efficient Artistic Mesh Generation via MeshVAE and Flow-based Diffusion Transformer3 Jun 2026
- 2026Garment Particles: A 2D--3D Symmetric Garment Representation for Generation and Editing25 May 2026
- 2026Memory-Augmented Reinforcement Learning Agent for CAD Generation19 May 2026
- 2026Text2CAD-Bench: A Benchmark for LLM-based Text-to-Parametric CAD Generation18 May 2026
- 2026Text-to-CAD Retrieval: a Strong Baseline7 May 2026
- 2026Computer-Aided Design Generation by Cascaded Discrete Diffusion Model6 May 2026
- 2026CADFS: A Big CAD Program Dataset and Framework for Computer-Aided Design with Large Language Models3 May 2026
- 2026CADFit: Precise Mesh-to-CAD Program Generation with Hybrid Optimization2 May 2026
- 2026SQuadGen: Generating Simple Quad Layouts via Chart Distance Fields30 Apr 2026
- 2026Zero-to-CAD: Agentic Synthesis of Interpretable CAD Programs at Million-Scale Without Real Data27 Apr 2026
- 2026neuralCAD-Edit: An Expert Benchmark for Multimodal-Instructed 3D CAD Model Editing17 Apr 2026
- 2026HiDiGen: Hierarchical Diffusion for B-Rep Generation with Explicit Topological Constraints3 Apr 2026
- 2026GIFT: Bootstrapping Image-to-CAD Program Synthesis via Geometric Feedback28 Mar 2026
- 2026GeoFusion-CAD: Structure-Aware Diffusion with Geometric State Space for Parametric 3D Design23 Mar 2026
- 2026Masked BRep Autoencoder via Hierarchical Graph Transformer16 Mar 2026
- 2026A2Z-10M+: Geometric Deep Learning with A-to-Z BRep Annotations for AI-Assisted CAD Modeling and Reverse Engineering13 Mar 2026
- 2026Towards High-Fidelity CAD Generation via LLM-Driven Program Generation and Text-Based B-Rep Primitive Grounding12 Mar 2026
- 2026Learning From Design Procedure To Generate CAD Programs for Data Augmentation6 Mar 2026
- 2026DreamCAD: Scaling Multi-modal CAD Generation using Differentiable Parametric Surfaces5 Mar 2026
- 2026Pointer-CAD: Unifying B-Rep and Command Sequences via Pointer-based Edges & Faces Selection4 Mar 2026
- 2026FoV-Net: Rotation-Invariant CAD B-rep Learning via Field-of-View Ray Casting27 Feb 2026
- 2026BoxSplitGen: A Generative Model for 3D Part Bounding Boxes in Varying Granularity24 Feb 2026
- 2026CADReasoner: Iterative Program Editing for CAD Reverse Engineering18 Feb 2026
50 newest of 103 All 103 (JSON)
- 2024GenCAD: Image-Conditioned Computer-Aided Design Generation with Transformer-Based Contrastive Representation and Diffusion Priorscited by 38
- 2025CADDreamer: CAD Object Generation from Single-view Imagescited by 25
- 2024DeBaRA: Denoising-Based 3D Room Arrangement Generationcited by 20
- 2025GarmentDiffusion: 3D Garment Sewing Pattern Generation with Multimodal Diffusion Transformerscited by 9
- 2026MeshFlow: Efficient Artistic Mesh Generation via MeshVAE and Flow-based Diffusion Transformercited by 7
- 2025SketchDNN: Joint Continuous-Discrete Diffusion for CAD Sketch Generationcited by 5
- 2026MeshFlow: Mesh Generation with Equivariant Flow Matchingcited by 4
- 2026DualBrep: A Dual-Field Continuous Representation for B-rep Modellingcited by 2
- 2025MamTiff-CAD: Multi-Scale Latent Diffusion with Mamba+ for Complex Parametric Sequencecited by 1
- 2026BoxSplitGen: A Generative Model for 3D Part Bounding Boxes in Varying Granularitycited by 1
- 2026Computer-Aided Design Generation by Cascaded Discrete Diffusion Modelcited by 0
- 2026DualBrep: A Dual-Field Continuous Representation for B-rep Modelling30 Jun 2026
- 2026MeshFlow: Mesh Generation with Equivariant Flow Matching22 Jun 2026
- 2026MeshFlow: Efficient Artistic Mesh Generation via MeshVAE and Flow-based Diffusion Transformer3 Jun 2026
- 2026Computer-Aided Design Generation by Cascaded Discrete Diffusion Model6 May 2026
- 2026BoxSplitGen: A Generative Model for 3D Part Bounding Boxes in Varying Granularity24 Feb 2026
- 2025MamTiff-CAD: Multi-Scale Latent Diffusion with Mamba+ for Complex Parametric Sequence20 Nov 2025
- 2025SketchDNN: Joint Continuous-Discrete Diffusion for CAD Sketch Generation15 Jul 2025
- 2025GarmentDiffusion: 3D Garment Sewing Pattern Generation with Multimodal Diffusion Transformers30 Apr 2025
- 2025CADDreamer: CAD Object Generation from Single-view Images28 Feb 2025
- 2024DeBaRA: Denoising-Based 3D Room Arrangement Generation26 Sep 2024
- 2024GenCAD: Image-Conditioned Computer-Aided Design Generation with Transformer-Based Contrastive Representation and Diffusion Priors8 Sep 2024
- 2026Zero-to-CAD: Agentic Synthesis of Interpretable CAD Programs at Million-Scale Without Real Datacited by 8
- 2026Embodied CAD: Solver-Grounded LLM Agents for Parametric B-Rep Assembly Modelingcited by 4
- 2026CADIR: A Cross-Backend Editable Intermediate Representation for Agentic CAD Generationcited by 2
- 2026Memory-Augmented Reinforcement Learning Agent for CAD Generationcited by 0
- 2026TraceCAD: Trace-Guided Repair for Agentic CAD Generationcited by 0
- 2026LLM-Aided Design for Manufacturing: A Multi-Agent System for Intent-Preserving Redesign of CAD for Improved Manufacturabilitycited by 0
- 2026AgenticCADedit: A Stateful, Tool-Mediated Agentic Approach to Multimodal 3D CAD Editingcited by 0
- 2026LLM-Aided Design for Manufacturing: A Multi-Agent System for Intent-Preserving Redesign of CAD for Improved Manufacturability3 Sep 2026
- 2026AgenticCADedit: A Stateful, Tool-Mediated Agentic Approach to Multimodal 3D CAD Editing28 Aug 2026
- 2026TraceCAD: Trace-Guided Repair for Agentic CAD Generation4 Aug 2026
- 2026CADIR: A Cross-Backend Editable Intermediate Representation for Agentic CAD Generation1 Aug 2026
- 2026Embodied CAD: Solver-Grounded LLM Agents for Parametric B-Rep Assembly Modeling30 Jun 2026
- 2026Memory-Augmented Reinforcement Learning Agent for CAD Generation19 May 2026
- 2026Zero-to-CAD: Agentic Synthesis of Interpretable CAD Programs at Million-Scale Without Real Data27 Apr 2026
- 20243DTopia-XL: Scaling High-quality 3D Asset Generation via Primitive Diffusioncited by 101
- 2024EdgeRunner: Auto-regressive Auto-encoder for Artistic Mesh Generationcited by 87
- 2024CAD-MLLM: Unifying Multimodality-Conditioned CAD Generation With MLLMcited by 81
- 2024SINGAPO: Single Image Controlled Generation of Articulated Parts in Objectscited by 69
- 2025Efficient Part-level 3D Object Generation via Dual Volume Packingcited by 48
- 2025Text-to-CAD Generation Through Infusing Visual Feedback in Large Language Modelscited by 47
- 2025Text-to-CadQuery: A New Paradigm for CAD Generation with Scalable Large Model Capabilitiescited by 43
- 2025CAD-Coder: An Open-Source Vision-Language Model for Computer-Aided Design Code Generationcited by 43
- 2024Img2CAD: Conditioned 3D CAD Model Generation from Single Image with Structured Visual Geometrycited by 37
- 2025CADCrafter: Generating Computer-Aided Design Models from Unconstrained Imagescited by 35
- 2024An Object is Worth 64x64 Pixels: Generating 3D Object via Image Diffusioncited by 34
- 2024FlexCAD: Unified and Versatile Controllable CAD Generation with Fine-tuned Large Language Modelscited by 34
12 most cited of 81 All 81 (JSON)
- 2026UniBRep: Learning Unified Geometry and Topology for Image-conditioned B-Rep Generation2 Oct 2026
- 2026StepCAD: Mesh-to-CAD Code Generation via LLM Policy and Geometry-Guided Search1 Oct 2026
- 2026DepthBenchCAD: When Does Deeper Auditing Yield More Reliable Conclusions?14 Sep 2026
- 2026Learn the Solid, Not the File: Canonical Inputs for Neural Networks on CAD Boundary Representations10 Sep 2026
- 2026VisCAD: A Foundation Model Suite with Multimodal Industrial CAD Intelligence3 Sep 2026
- 2026HiFi-BRep: High-Fidelity Latent Representation for Robust B-Rep Generation17 Aug 2026
- 2026RA-CAD: Learning Post-Execution Critique for State-Aware Text-to-CAD Generation6 Aug 2026
- 2026Towards Valid B-Rep Generation: Training-Free Wireframe Anomaly Detection and Repair5 Aug 2026
- 2026AIMold: An Autonomous AI-based Pipeline for Complex Mold Design1 Aug 2026
- 2026CADENA: Stepwise CAD Reverse Engineering1 Aug 2026
- 2026Autoregressive B-Rep Shape Generation with Parametric Surfaces19 Jul 2026
- 2026HierCAD: Hierarchical Text-to-CAD Design via Structure Alignment and Parameter Grounding13 Jul 2026
12 newest of 81 All 81 (JSON)
Similar, not cited
Close in wording, no citation either way
- 2026Img2CADSeq: Image-to-CAD Generation via Sequence-Based Diffusion
- 2024Topology-Aware Latent Diffusion for 3D Shape Generation
- 2023Latent Diffusion Models for Structural Component Design
- 2025Censored Sampling for Topology Design: Guiding Diffusion with Human Preferences
- 2026BrepCoder: A Unified Multimodal Large Language Model for Multi-task B-rep Reasoning
- 2026Mesh BDF: Barycentric Dominance Field for 3D Native Mesh Generation
- 2024Hyperbolic Geometric Latent Diffusion Model for Graph Generation
- 2026Boundary-Constrained Diffusion Models for Floorplan Generation: Balancing Realism and Diversity