<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nakul</title>
    <description>The latest articles on DEV Community by Nakul (@nakullukan).</description>
    <link>https://dev.to/nakullukan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F632775%2Fb777d76c-8fcc-4b90-92a6-aeb36829f212.jpeg</url>
      <title>DEV Community: Nakul</title>
      <link>https://dev.to/nakullukan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nakullukan"/>
    <language>en</language>
    <item>
      <title>PDF Generator for .NET</title>
      <dc:creator>Nakul</dc:creator>
      <pubDate>Mon, 17 Oct 2022 07:32:49 +0000</pubDate>
      <link>https://dev.to/nakullukan/pdf-generator-for-net-2amj</link>
      <guid>https://dev.to/nakullukan/pdf-generator-for-net-2amj</guid>
      <description>&lt;p&gt;&lt;a href="https://www.questpdf.com/"&gt;https://www.questpdf.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>csharp</category>
      <category>pdf</category>
    </item>
    <item>
      <title>3D Graphics Terminologies (A-Z)</title>
      <dc:creator>Nakul</dc:creator>
      <pubDate>Mon, 11 Jul 2022 07:54:51 +0000</pubDate>
      <link>https://dev.to/nakullukan/3d-graphics-terminologies-a-z-e8k</link>
      <guid>https://dev.to/nakullukan/3d-graphics-terminologies-a-z-e8k</guid>
      <description>&lt;h3 id="1"&gt;A&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Absolute Coordinates &lt;/strong&gt;— The location of a point by way of distance or angles from a fixed origin. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Aliasing &lt;/strong&gt;— The jagged effect that occurs along the edges of objects in pictures.  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Alpha &lt;/strong&gt;— An alpha is a mask that defines the transparency of pixels. It allows for revealing foreground and background areas when two images overlap. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ambient Occlusion &lt;/strong&gt;— AO for short, is a shading and rendering technique used to determine exposure in a scene relative to ambient lighting. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bcjhTAsm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172f8b523a5be0400c639b5_ambientOcclusion.png" alt="ambientOcclusion.png" width="652" height="315"&gt;Ambient Occlusion Example&lt;p&gt;&lt;strong&gt;Anisotropy&lt;/strong&gt; — Anisotropy can be seen on metal surfaces, especially brushed metal. An anisotropic surface changes in appearance as it rotates its view. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Anti-aliasing &lt;/strong&gt;— A method for preventing the jagged effect of aliasing. Using surrounding areas, it blends color values between pixels &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Aperture &lt;/strong&gt;— The opening size of a camera lens. The larger an aperture, the shorter depth of field becomes as well as a greater amount of light. The inverse is true as well. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BTOmG83Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fabface3fc31f3390f04_aperature.gif" alt="" width="417" height="378"&gt;&lt;p&gt;&lt;strong&gt;Arbitrary Output Variable &lt;/strong&gt;— AOVs for short, are secondary images produced by a render engine. Often times called multiple passes. Examples of secondary images include specular, z-depth, and motion vectors. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Area Light &lt;/strong&gt;— A type of light that emits rays from a geometric area instead of a single point. These types of lights are useful for creating softer shadows. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Arnold &lt;/strong&gt;— A 3rd-party render engine created by &lt;a href="https://www.solidangle.com/"&gt;Solid Angle&lt;/a&gt;. Arnold is an unbiased (see unbiased, below), CPU render engine. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ashikhmin- Shirley &lt;/strong&gt;— A BRDF model created by Michael Ashikhmin and Peter Shirley in August 2000. It is super technical, and prides itself on being more physically accurate. You can &lt;a href="http://adaptivesamples.com/2014/06/23/ashikhmin-shirley-distribution/"&gt;read the abstract here&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Attenuation &lt;/strong&gt;— As light travels through air, its strength diminishes. The further the rays travel, the dimmer the light. This is attenuation. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Axis, Axes &lt;/strong&gt;— An Axis or multiple axes describe the origin and position of an object in space, referenced by two intersecting straight lines. XY, YZ, ZX. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3WdAshZe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172f8b43464619b4a61d009_3DAxis.png" alt="3DAxis.png" width="880" height="345"&gt;3D Axis&lt;h3 id="2"&gt;B&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;B-Spline &lt;/strong&gt;— A B-Spline is a free-form curve defined by two axes. This can be thought of as a simplified bezier curve. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Backface Culling &lt;/strong&gt;— A process that eliminates polygons facing away from the active camera from being rendered. This can improve performance because less geometry needs to be rendered.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Beckmann &lt;/strong&gt;—  A specular highlight distribution model. Specifically micro-facet distribution. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Beeple &lt;/strong&gt;— The man. The myth. &lt;a href="https://www.beeple-crap.com/"&gt;The daily king. &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bend&lt;/strong&gt; — As it sounds, any deviations away from a straight line or position. Most 3D applications offer a bend deformer of sorts. &lt;/p&gt;
&lt;p&gt;x&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;Bevel&lt;/strong&gt; —  A bevel eliminates sharp edges from objects. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zIOhH2RV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fb8e10138af72331d74d_ezgif-6-d74b9a0e9187.gif" alt="" width="880" height="495"&gt;Bevels. Turning sharp edges into J-Lo curves.&lt;p&gt;&lt;strong&gt;Bezier Curve&lt;/strong&gt; —  Named after Pierre Bezier, it is a technique for creating curves. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Biased&lt;/strong&gt; &lt;strong&gt;(Rendering) &lt;/strong&gt;— Biased rendering allows render engines to take shortcuts to increase production times while not compromising on looks.&lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RZHhgKOM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fbb6b26e964db9ca8660_BiasedShortcut.gif" alt="" width="480" height="366"&gt;Biased Rendering: We'll just cut through here.&lt;p&gt;&lt;strong&gt;Bitmap&lt;/strong&gt; — A monochromatic raster image. &lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.blender.org/"&gt;&lt;strong&gt;Blender&lt;/strong&gt;&lt;/a&gt; — An open-source 3D software.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Boolean &lt;/strong&gt;—  A modeling technique takes overlapping objects to create a new object using subtraction, union or intersection. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sKJffilC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fc3179c1f69c8ce602cf_ezgif-6-ce3826bf8451.gif" alt="" width="880" height="495"&gt;&lt;p&gt;&lt;strong&gt;Box Modeling&lt;/strong&gt; — A modeling technique using primitive shapes to create the basic foundation shape of a final model. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Boundary Box &lt;/strong&gt;— A simplified cubic representation of a polygonal mesh or geometry. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BRDF&lt;/strong&gt; — Bidirectional Reflectance Distribution Function. Using four real world variables to define how light is reflected at an opaque surface. The four variables are radiance, irradiance, surface normal and incandescent light. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bucket&lt;/strong&gt; — A visual representation of the area that is currently being rendered by an engine.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bump Map &lt;/strong&gt;— An image that creates an illusion of three-dimensionality on a surface, such as protrusions and cavities by recalculating the normals of an object. This does not change the mesh itself, allowing for high levels of detail without high polygonal counts. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PKjJuor7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172f8b54fab8930cd6bda24_BumpMapExample.jpeg" alt="BumpMapExample.jpg" width="638" height="376"&gt;The detailing given by a bump map.&lt;h3 id="3"&gt;C&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cache &lt;/strong&gt;— Any amount of memory being used to save calculations so that they don't have to be made again. This is particularly useful in simulations. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CAD &lt;/strong&gt;— Computer-Aided Design. CAD software is often used for mechanical designs. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Camera Mapping &lt;/strong&gt;— Taking a flat, 2D image and projecting it onto 3D geometry, adding approximations of real 3D shapes and volumes to the flat image. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cap &lt;/strong&gt;— The closed sides of an object. Such as the top and bottom of a cylinder. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y8SIdtsZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fc9817bc0b0419154129_ezgif-6-63598c80ccda.gif" alt="" width="880" height="495"&gt;The cap of a cylinder.&lt;p&gt;&lt;strong&gt;Cartesian Space &lt;/strong&gt;— Positions using a three-coordinate system; x, y and z; relating to a central origin. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Caustics  &lt;/strong&gt;— The specular reflection or refraction of a light creates patterns, as seen when light passes through a glass tumbler or wine glass. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Center of the World &lt;/strong&gt;—  The absolute center of a 3D scene. Also referred to as the Origin. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chamfer &lt;/strong&gt;— The creation of blunt edge shapes. See &lt;em&gt;Bevel&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Child&lt;/strong&gt; — An object that is influenced by another object (known as the "parent").&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chromatic Aberration &lt;/strong&gt;— Also known as "color fringing", is an optical anomaly that occurs when a lens is unable to converge all wavelengths of color to the same focal plane. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EIJHfV_Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172f8b5f27b36470f1c248d_Chromatic_Aberration_Comparison.jpeg" alt="Chromatic_Aberration_Comparison.jpg" width="600" height="379"&gt;An example of Chromatic Aberration.&lt;p&gt;&lt;strong&gt;Cinema4D &lt;/strong&gt;— A 3D application created by Maxon. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cloner Object &lt;/strong&gt;— A cloner object inside of Cinema4D allows you to create multiple clones of objects that can be affected by various Effectors.  &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EAE9Oawl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fd18f620c8ae5d9f260c_ezgif-6-047cf7d77cf2.gif" alt="" width="880" height="495"&gt;A cloner object was used to turn one cube into many.&lt;p&gt;&lt;strong&gt;Color Depth&lt;/strong&gt; —  A number of bits used to reprsent color. The bits are divided into red, green and blue (as well as an option alpha channel). There are 8-bit, 16-bit, 24-bit and 32-bit color depths. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CPU Render Engine &lt;/strong&gt;— A render engine that uses the power of a CPU or multiple CPUs to render a scene. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cube (Box) &lt;/strong&gt;—  A primitive object. Your 3D application may call them cubes or boxes. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cycles Render Engine &lt;/strong&gt;— An open source render engine created by the Blender Foundation that utilizes both CPU and GPU capabilities. A port of this render engine has been created by Insysidum, called Cycles 4D.&lt;/p&gt;
&lt;h3 id="4"&gt;D&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Data Mapping &lt;/strong&gt;— Using data to map drive attributes in a 3D program. These attributes can range from the position of objects to colors.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DCC &lt;/strong&gt;— "Digital Content Creation". Tools like Cinema4D, Houdini, Maya, etc.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Decay &lt;/strong&gt;— The decrease in light intensity with distance. The further away from a light source, the less intense its rays become. See Inversed Square.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Depth of Field &lt;/strong&gt;— The total distance in which a point of focus appears sharp. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Diffuse &lt;/strong&gt;— The essential color of an object that is shown under pure white light. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Direct Lighting &lt;/strong&gt;— Light rays that have traveled in a straight line from a light source to a surface. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disc &lt;/strong&gt;— A circular primitive object. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Displacement Map &lt;/strong&gt;— Use to to modify the actual mesh of an object (as opposed to a bump or normal map) to create high levels of detail such as wrinkles. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dope Sheet &lt;/strong&gt;— A summary of important information in a 3D application. Often times it shows keyframes, a curve editor, hierarchies and more. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AEn9iB9l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172f8b47572bece62ff84f3_dopesheet.png" alt="dopesheet.png" width="408" height="281"&gt;Cinema4D's Dope Sheet.&lt;p&gt;&lt;strong&gt;Dynamics &lt;/strong&gt;— Dynamics are simulations that calculate how an object should act in the real world. For example, how a sphere may bounce. &lt;/p&gt;
&lt;h3 id="5"&gt;E&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Edge&lt;/strong&gt; — A straight line connecting two points on a polygon. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Edge Loop&lt;/strong&gt; — A method used when modeling to create a loop of multiple polygons. The emission of light rays from an object or material.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Effector — &lt;/strong&gt;Effectors can be used to offset positions, change colors, modify objects and more. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Emission&lt;/strong&gt; — The emission of light rays from an object or material. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Environment Map&lt;/strong&gt; — A map used to simulate reflection of the world without using any ray tracing. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;EXR&lt;/strong&gt; — A versatile 32-bit file format. This format is fantastic for compositing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Extrude&lt;/strong&gt; — To create a three-dimensional object from a two-dimensional shape or plane. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JOJw2b0P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fde5ace3fc773b3950cb_ezgif-6-0ad232e15313.gif" alt="" width="880" height="495"&gt;Extrudiamos! That's from Harry Potter, right?&lt;h2&gt;&lt;br&gt;&lt;/h2&gt;
&lt;h3 id="6"&gt;F&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;F-Curves&lt;/strong&gt; — Cinema4D's graph editor. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Face &lt;/strong&gt;— A shape made by a bounding points that makes a polygon. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Falloff &lt;/strong&gt;— Fall off can also mean Decay. However, it can also be used as a representation of how intense an effect is at various positions. How quickly the intensity moves from 0 to 100 or any other values. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Field of View &lt;/strong&gt;— The range of view from top to bottom, left to right. A larger FOV allows for more of a scene to be viewed. The inverse is also true. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fill Light &lt;/strong&gt;— One or more lights used to assist in lighting a scene. They are often less intense than the key light. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NO2fPnrz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172f8e5a67ad3c3944dc7eb_3DGlossary_FillLight.gif" alt="3DGlossary_FillLight.gif" width="880" height="495"&gt;An object with and without a fill light.&lt;p&gt;&lt;strong&gt;Fillet &lt;/strong&gt;— The rounding of the edges on an object.  See &lt;em&gt;Bevel&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Floating Values &lt;/strong&gt;— A value scale starting with 0 and ending with 1. This scale is extremely precise, for example 0.12575. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fluid Solver &lt;/strong&gt;— Fluid simulations using any number of software such as X- Particles, Real Flow, Houdini and others.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Focal Length&lt;/strong&gt; — The distance between the lens and the backplate (if it were a real camera). Focal lengths are in mm, such as 50mm, 100mm, etc. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;FPS (Frames Per Second) &lt;/strong&gt;— Also called frame-rate, it is the speed at which a frame of animation or video is played back. Often 24, 30, or 60 FPS. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fresnel&lt;/strong&gt; — The observation that the amount of reflectance seen on a surface is dependent upon a viewers angle. &lt;/p&gt;
&lt;h3 id="7"&gt;G&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Gamma —&lt;/strong&gt; A gamma value is the luminance value in a video or still image.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Geometry —&lt;/strong&gt; The total points of an object. For example, a basic cube or box has eight points. Geometry can be composed of anything with one or more points. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GGX —&lt;/strong&gt; A shading model for refraction through rough surfaces. If you want to geek out, &lt;a href="http://www.cs.cornell.edu/~srm/publications/EGSR07-btdf.pdf"&gt;here is its abstract.&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Global Illumination —&lt;/strong&gt; Without getting super technical, global illumination (or GI),  is a calculation of how light bounces off surfaces and onto other surfaces. Without global illumination, the calculation only accounts for the surfaces directly hit by a light's rays.  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Glow —&lt;/strong&gt; A common motion graphics post-effect, this is meant to simulate the real-life phenomenon of light interacting with the lense of a camera producing glows or light flares over captured footage &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gouraud Shading —&lt;/strong&gt; This is a shading model that applies to objects in your viewport. This mode averages the normals of individual faces of your objects so the surfaces seem smoother. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GPU Render Engine —&lt;/strong&gt; Any renderer which leverages the computational power of a computer's graphics card as opposed to its CPU. GPU render engines tend to be synonymous with increased speeds. &lt;a href="https://www.otoy.com/"&gt;Octane&lt;/a&gt;, &lt;a href="https://www.redshift3d.com/"&gt;Redshift&lt;/a&gt;, and &lt;a href="https://www.insydium.com/"&gt;Cycles&lt;/a&gt; are just some of the many increasingly popular GPU render engines. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gradient Ramp —&lt;/strong&gt; Gradient ramps allow you to easily interpolate between different color and greyscale values using a small number of control knots. These interpolated values can then be used to drive shading parameters like reflection strength or roughness, or even animations. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Greebles —&lt;/strong&gt; Refers to the technique of giving a model the impression of complexity by adding simple, usually random surface details. This term originated from VFX artists designing props for the original Star Wars trilogy. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Greyscale Gorilla —&lt;/strong&gt; A popular Cinema4D training &lt;a href="https://www.greyscalegorilla.com/"&gt;website&lt;/a&gt; offering free and paid tutorials as well as a suite of plugins for Cinema4D. &lt;/p&gt;
&lt;p&gt;H&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hard Surface Modeling&lt;/strong&gt; — Any kind of modeling of objects that are mechanical in nature, or otherwise characterized by precise and sharp beveled edges. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HDRI&lt;/strong&gt; — High Dynamic Range Image. These images accurately store real- world light values which can then be used in 3D to more easily recreate realistic lighting conditions. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;High Res&lt;/strong&gt; — High Resolution, referring to the pixel dimensions of an image or footage (1920x1080 pixels being a standard 'high-definition' size for computer monitors or TVs) . By the time you finish reading this list, what was considered High Res at the start will already be old news. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Highlight&lt;/strong&gt; — Often associated with reflection, highlights form on regions of the surface where the light reflects most strongly based on the viewing angle of the camera. Highlights often do a nice job of defining the form of an object. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Houdini&lt;/strong&gt; — A DCC application created by &lt;a href="https://www.sidefx.com/"&gt;SideFX&lt;/a&gt;. The application has won an Oscar for its use and abilities in the VFX and Film Industries. Despite its roots in those industries, it is becoming popular in the motion design industry for its node based, procedural and simulation work.  Agencies like &lt;a href="https://mvsm.com/"&gt;ManVsMachine&lt;/a&gt; and &lt;a href="http://www.aixsponza.com/"&gt;Aixsponza&lt;/a&gt; have helped with the popularity of Houdini in mograph. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HPB&lt;/strong&gt; — Rotational axis for Heading, Pitch and Bank.&lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k4uJzmZY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fe0d3b935cf6216c83a5_HPB.gif" alt="" width="720" height="560"&gt;Heading, Pitch and Bank&lt;h3 id="8"&gt;I&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Index of Refraction&lt;/strong&gt; — IOR for short. This is a real-world property of metallic and dielectric materials that governs the way they reflect and bend light. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Indirect Lighting &lt;/strong&gt;— Light rays that have bounced off of a surface, scattered, reflected or focused before reaching another surface. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interactive Preview Region &lt;/strong&gt;— A render window you can overlay atop your viewport so that it re- renders anything within its bounds. This is useful when doing anything that requires a lot of iteration as it can be faster to see the updates this way than doing a Picture Viewer render  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Inverse Square &lt;/strong&gt;— Inverse square law describes how the intensity of light weakens over distance. This is super important in setting up realistic lighting in a 3D program  &lt;/p&gt;
&lt;h3 id="9"&gt;K&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Key Light&lt;/strong&gt; —  A term from photography, the key-light is the term for a light, typically illuminating the front of your subject defining its form and dimension. You will often find it helpful to start lighting your scene with the key, and then placing additional lights anywhere else you'd like to fill in detail. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4fumXLWd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fe4765c299d0d1da5da4_L-System.gif" alt="" width="880" height="524"&gt;L-System.&lt;h3 id="10"&gt;L&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;L-System&lt;/strong&gt; — A kind of procedural system for generating complex spline structures, like trees or neural networks. L-systems use a simple kind of code-language to describe how the spline propagates with each iteration.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Level-of-Detail (LOD)&lt;/strong&gt; — Represented as a percentage (100% being full detail) this setting can simplify your 3D scene for faster previewing and navigation by reducing dense geometry. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gawWzTvh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fe64df1b35130477cfd4_Level-of-Detail.gif" alt="" width="880" height="524"&gt;Level of Detail (LOD)&lt;p&gt; &lt;strong&gt;Linear&lt;/strong&gt; — Refers to the color space of the viewport and render. Linear results in colors and lights that respond more naturally and is therefore the preferred process for working in a 3D program, before color correction is applied in a compositing program.&lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ElHQZJRX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172f8e432524ae954705b14_Linear_-_Turbosquid.jpeg" alt="Linear - Turbosquid.jpg" width="880" height="289"&gt;Linear Workflow&lt;p&gt;&lt;strong&gt;Low Res&lt;/strong&gt; — Low Resolution, probably 4K by now... Typically, anything below 1280x720 pixels is considered Low Resolution, and is typically best suited for quick preview renders &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Low-Poly Modeling&lt;/strong&gt; — Typically refers to a popular kind of aesthetic in 3D which embraces the faceted look created by the constituate polygons of 3D models rather than trying to hide them &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Luminance&lt;/strong&gt; — A channel of Cinema4D's native material system. Any texture (bitmap or procedural) applied in the luminance channel will generally be unaffected by lights or shadows in the scene, giving it the appearance of being light-emitting. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Qe6jyNXQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172f8e4b26e963912ca84fb_Luminance.png" alt="Luminance.PNG" width="880" height="577"&gt;Luminance&lt;p&gt;&lt;strong&gt;LUT&lt;/strong&gt; — Look-Up Table. These files contain information that transforms the colors of an image to match a set profile. These are normally used in post to color-grade 3D renders, but some render engines allow you to view the render with the LUT applied right in the Picture Viewer.  &lt;/p&gt;
&lt;h3 id="11"&gt;M&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Material —&lt;/strong&gt; A set of properties (governing aspects such as the color of your object to how transparent it is) that define how your model will render in your scene &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oQBt0Ums--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172f8e51695abf493d4cf7a_Material_-_Work_by_Jarrod_Hasenjager.jpeg" alt="Material - Work by Jarrod Hasenjager.jpg" width="880" height="495"&gt;Examples of a variety of materials.&lt;p&gt;&lt;strong&gt;Maya —&lt;/strong&gt; An Autodesk 3D DCC, Maya is known for its robust character rigging tools. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MIP-Mapping —&lt;/strong&gt; This is a type of image-filtering that is applied to textures to minimize the moire effect that can arise when a pattern is tiled many times and viewed at a low angle. This filter is applied by default when you load an image into a C4D material. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mograph Tools —&lt;/strong&gt; The collection of effectors and generators within the Mograph Module of Cinema4D. These tools allow for the procedural animation of hundreds or thousands of objects in a variety of ways &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TySM1-1w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fe9b7dcddea19c4c92b3_mograph_tools.gif" alt="" width="880" height="524"&gt;Some of the magic of Cinema4D's mograph tools.&lt;p&gt;&lt;strong&gt;Multipass —&lt;/strong&gt; Allows you to output specific components of the final render. For example, you could have a pass that contains only the reflectance data in your scene or a pass of just the normals. These can be used in the compositing stage to modify the look of your render with a great level of control. Also see &lt;em&gt;AOV&lt;/em&gt;. &lt;/p&gt;
&lt;h3 id="12"&gt;N&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;N-Gon&lt;/strong&gt; — A polygon composed of more than 4 points. These serve well to cap complex holes in polygons but do not tend to react predictably under subdivision, hence their nasty rep among 3D modelers.&lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--N7MYMPvY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fec15554440bdc0949f4_N-Gon.gif" alt="" width="720" height="560"&gt;An example of an N-gon with more than 4 edges.&lt;p&gt;&lt;strong&gt;Nodes&lt;/strong&gt; — Nodes generally accept one or more inputs, perform some kind of operation on that information, and then output the modified data. These are the foundation of programs like Houdini and Nuke, as well as node-based shaders. The visual representation of how the data is processed in a node network makes them a great option for rigs or any other kind of procedural operation and iterative design.  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Noise&lt;/strong&gt; — Mathematically-generated pseudo-random patterns. The procedural nature of this noise means that it can be made to contain very fine levels of detail and are unconstrained by texture resolution.While this is often used in texturing for natural looking patterns, it can also be used to drive mograph animation. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Noises (Perlin, Alligator, Sparse Convolution)&lt;/strong&gt; — Variations and improvements of the original Perlin noise, these introduce further controls to refine the final look and appearance of the produced pattern. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vZVpNpEZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fee77dab05b7e51422e4_noise.gif" alt="" width="880" height="524"&gt;An animated noise in Cinema4D.&lt;p&gt;&lt;strong&gt;Non-planar&lt;/strong&gt; — Refers to a polygon whose 4 (or more) points do not lie on a single 2D plane. These are basically harmless but can cause undesired shading artifacts in your viewport. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9ZX_Dvnu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172ff05ace3fc8460396408_Non-planar.gif" alt="" width="880" height="524"&gt;The transformation of a plane object into a non-planar object.&lt;p&gt;&lt;strong&gt;Normal Map&lt;/strong&gt; — A 2D texture that can be used to describe the pixel-level orientation of a surface. This is a useful way of enhancing the detail of an object without the cost of millions of polygons. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Normals&lt;/strong&gt; — These define the direction that a polygon is 'facing'. Can be very important for proper shading &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6aH8wx13--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172f8e5f9c49b692988cd6f_Normals.png" alt="Normals.PNG" width="880" height="532"&gt;An example of normals. The white lines indicate the direction in which the normals are directed.&lt;p&gt;&lt;strong&gt;NURBS&lt;/strong&gt; — Non-Uniform Rational B-Spline (I'm confused with you). What you need to know is that anything attached to this term (which is used less nowadays) is generally referring to a geometric surface, specifically one generated in some way from a Spline input. Examples include: Lofts, Lathes, and Sweeps.  &lt;/p&gt;
&lt;h3 id="13"&gt;O&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Octane&lt;/strong&gt; — Very popular unbiased GPU renderer developed by &lt;a href="https://www.otoy.com/"&gt;Otoy&lt;/a&gt; with plugins for most 3D packages. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Open VDB&lt;/strong&gt; — Open VDB is a versatile format for storing sparse voxel grid data. These have been used in a wide variety of cases for fluid simulations, particle effects, and even complex meshing. The technology is open-source and developed by Dreamworks Studios.&lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--foM_afZE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172ff2cb3b6c935d1bc2aa0_OpenVdb.gif" alt="" width="668" height="442"&gt;The cloudy object in this scene is collected in an OpenVDB file.&lt;p&gt;&lt;strong&gt;Orbit&lt;/strong&gt; — A navigation in the 3D viewport where the camera revolves about a fixed point in your scene. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Hy2yk-UC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172ff48fd3f92d9da8a7331_Orbit.gif" alt="" width="880" height="524"&gt;Orbiting around the figure object.&lt;p&gt;&lt;strong&gt;Oren-Nayer&lt;/strong&gt; — A shading model for realistic diffuse surfaces. Simulates a very fine rough surface.&lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0Ii7Cntu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172ff6687b110a57ab597b2_Oren_nayar.gif" alt="" width="720" height="560"&gt;Standard shading vs. Oren-Nayer shading.&lt;p&gt;&lt;strong&gt;Organic Modeling&lt;/strong&gt; — Often sculpted models of subjects of a biological nature. Think flowing, smooth surfaces, like an ear for example. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Orthographic&lt;/strong&gt; — A type of view you can use to navigate your 3D scene. This view removes any distortion that might be caused by a perspective view (where objects further away appear smaller) and is therefore useful in certain modeling situations. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qcPtakxL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172ff7f018ac631f0dba663_Orthographic.gif" alt="" width="880" height="524"&gt;Perspective Camera vs. Orthographic Camera.&lt;h3 id="14"&gt;P&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Parametric&lt;/strong&gt; — Parameter-based. This refers to objects whose appearance is dependent on any number of variable parameters. For example, imagine a Cylinder being affected by a Bend deformer. Altering the strength of the bend deformer actively changes the appearance of the cylinder. Therefore, the Bend deformer (and its influence on the cylinder) are considered parametric. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--u04zduc8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172ffa4f043ff0d9bcb5e66_Parametric.gif" alt="" width="880" height="524"&gt;Parametrically controlling cubes in C4D.
&lt;p&gt;&lt;strong&gt;Parent&lt;/strong&gt; — Usually an object or null which acts as the origin point for all transformations of the child objects. Often materials, tags or other properties on of the Parent can be inherited by the child (ya know, like how you have the milkman's eyes). &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NUpgSiHd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172ffc5fee15b4bce5f1a5b_Parent.gif" alt="" width="880" height="524"&gt;Parent/Child Relationships&lt;p&gt;&lt;strong&gt;Particles&lt;/strong&gt; — In 3D, particles are often simply points of data containing information like position, velocity, orientation, etc. Because they lack geometry, millions of particles can be manipulated in a scene with relative ease. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Perspective&lt;/strong&gt; — This view-type is closer to how humans perceive objects in real life, where objects further away appear smaller. This is the default view- type in a Cinema4D viewport. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Phong&lt;/strong&gt; — A shading model intended to approximate smooth surfaces that would otherwise appear faceted due to the low amount of polygons. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--t7_mTloo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fff15465a50097d7dcb3_Phong.gif" alt="" width="720" height="560"&gt;What your phong tag is doing.&lt;p&gt;&lt;strong&gt;Photorealism or Photometric Rendering&lt;/strong&gt; — Rendering with the strict intention of using data taken from real light sources and to produce photorealistic renders. This is most popular in architecture and industrial design. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Physically Based Rendering (PBR)&lt;/strong&gt; — This is an idea that promotes the use of real-world physical values in the creation of materials to govern their appearance. Think of it as the difference between using a generic Fresnel shader as opposed to an IOR value. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Physical Render&lt;/strong&gt; — Physical Render is a native Cinema4D rendering solution for achieving realistic photographic effects such as Depth of Field, Motion Blur, and more. Conveniently, it works with the same lighting and materials settings as Standard Renderer. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pitch&lt;/strong&gt; — This refers to a rotation that occurs about an object's local X-Axis. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--o0iZLlLn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6173000efee15b7e8f5f6df3_Pitch.gif" alt="" width="502" height="404"&gt;The pitch of rotation.&lt;p&gt;&lt;strong&gt;Pivot Point&lt;/strong&gt; — All 3D objects have an axis center. This acts as the point about which all Position, Scale and Rotation transforms occur. These can be thought of as anchor points.&lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NnXoN2q2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/617300283f07f243ec10e2e1_Pivot_Point.gif" alt="" width="720" height="560"&gt;Pivot points are a lot like anchor points in After Effects.&lt;p&gt;&lt;strong&gt;Pixel&lt;/strong&gt; — The most fundamental part of a 2D image. A pixel typically contains one color value, which when arranged in a grid with other pixels create an image. Not to be reductive or anything, but literally all we do is tell pixels which color to be, trippy huh?&lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--S75XVXzr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6173005c87b110bedeb59863_Pixel.gif" alt="" width="720" height="560"&gt;Pixel or Pooxel?
&lt;p&gt;&lt;strong&gt;Planar&lt;/strong&gt; — Often used to describe polygons whose points all lie within one plane.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Plane&lt;/strong&gt; — A Cinema4D geometry primitive, this is a flat rectangle with paramteric width and height subdivisions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Point Cloud&lt;/strong&gt; — Imagine a 3D torus. Now delete all the edges and polygons that make it up. What you're left with are the unconnected vertices that make up that shape. 3D scan data is often collected raw as point cloud data, and then processed to determine how those points connect to form the surface of the object.&lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MyvuEgvK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fa2f23a5be7824c78a77_PointCloud.png" alt="PointCloud.PNG" width="778" height="567"&gt;A point cloud.&lt;p&gt;&lt;strong&gt;Point Light&lt;/strong&gt; — A 3D light whose rays originate from a single infinitely small point in space and travel outward in all directions. These are technically unrealistic as no light source is infinitely small, but can be useful for lighting a 3D scene. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--36sbMZ6s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/61730079420b0e9ebf92f77c_Point_Light.gif" alt="" width="720" height="404"&gt;Example of point lights in a scene.&lt;p&gt;&lt;strong&gt;Polygon&lt;/strong&gt; — The two-dimensional surface defined by 3 or more non-overlapping points. Polygons are the building blocks (err.. planes rather) of 3D models.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Primitive&lt;/strong&gt; — Primitives refer to the set of base parametric objects you can create as starting points for modeling or to use as models themselves.These often feature controls for resolution in the form of segments, and controls to set the size and proportions.&lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZJ_PXYNG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fa30c1aa8f78b9abcc7f_Primitive.png" alt="Primitive.PNG" width="386" height="234"&gt;All the primitives in Cinema4D.&lt;p&gt;&lt;strong&gt;Procedural&lt;/strong&gt; — Rule-based. This umbrella term can refer to animation, shading, or a number of other aspects of a 3D program. Think of it like this, what if instead of manually keyframing an object to move up 50 cm, we said "as this effector moves over this cube, move up 50 cm"? By itself these two animations might look identical, but if we apply this &lt;em&gt;one&lt;/em&gt; rule to 300 objects, we've now saved ourselves about 600 keyframes. That is just one specific example, proceduralism is a much much broader idea and is the foundation of node-based tools such as Houdini.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ProRender&lt;/strong&gt; — AMD-developed GPU renderer recently included with Cinema4D R19. While still early in development, ProRender is one of relatively few GPU renderers not dependent on NVIDIA's proprietary CUDA technology. &lt;/p&gt;
&lt;h3 id="15"&gt;Q&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Quads &lt;/strong&gt;— Four-point polygons. These are considered ideal when modeling objects as they subdivide very neatly and predictably, and lend themselves well to forming good edge loops. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Gi6ESttB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6173009e1d1125bde37b0711_Quad.gif" alt="" width="880" height="524"&gt;An example of a tri polygon turning into a quad.&lt;p&gt;&lt;strong&gt;Quaternion&lt;/strong&gt; — An rotation interpolation method that will always look for the shortest possible path to the final state. Helps to avoid &lt;em&gt;Gimbal Lock&lt;/em&gt;.  &lt;/p&gt;
&lt;h3 id="16"&gt;R&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Radiosity &lt;/strong&gt;— A Global Illumination used to determine the light contribution as light rays bounce off of diffuse surfaces. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Range Mapping &lt;/strong&gt;— A method of conforming a set of values from one range to another (example: converting 0.50 in a range of 0-1 to 9 in a range of 6-12). This becomes very important when trying to connect the animation of two disparate values, like rotation with and translation, for example. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IPk1UqGt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/617300c5d648175153c6ab6a_Range_Mapping.gif" alt="" width="668" height="442"&gt;0 to 100 range mapped to 0 to 200.&lt;p&gt;&lt;strong&gt;Ray Trace &lt;/strong&gt;— A rendering technique use to calculate reflections, refractions and shadows. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Redshift &lt;/strong&gt;— A &lt;em&gt;biased&lt;/em&gt; production-focused GPU render engine. It offers artists a high-degree of control over rendering to allow for a lot of optimization. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Reflectance &lt;/strong&gt;— A channel in Cinema4D's material system. Reflectance was introduced in R16 as a way to bring C4D materials somewhat closer to a PBR workflow where both diffuse and specular reflections are more realistically considered. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Refraction &lt;/strong&gt;— The bending of light as it passes thru different mediums (ie air to water). As the ray's speed changes during its travel, its direction changes. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JORyY3DU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/617300e5da95f5e2480dde94_Refraction.gif" alt="" width="500" height="270"&gt;Refraction cause the hands to reverse.&lt;p&gt;&lt;strong&gt;Refraction Index &lt;/strong&gt;— The measurement of the amount of refraction for a given medium. Also see &lt;em&gt;IOR&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Relative Coordinates &lt;/strong&gt;— Locations in space defined by their distance away from a given point. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Render &lt;/strong&gt;— The creation of a photorealistic or non-photorealistic 2D image from a 3D scene, taking into account shaders, materials, lighting. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--osmwFeHt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/617300fe8e75ca81215a281b_Render.gif" alt="" width="789" height="479"&gt;Rendering. Creating the final image or sequence of a 3D scene.&lt;p&gt;&lt;strong&gt;Render Pass &lt;/strong&gt;— A separate portion of a final render that isolates certain attributes of an image. See &lt;em&gt;AOV&lt;/em&gt; and &lt;em&gt;Multipass.&lt;/em&gt; &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fd4mVroM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6173011be754900754438999_Render_Passes.gif" alt="" width="880" height="625"&gt;Render Passes or Multi-Passes.&lt;p&gt;&lt;strong&gt;Resolution &lt;/strong&gt;— The pixel dimensions in height and width that define the size of 2D image. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Rigging &lt;/strong&gt;— The process of creating controls for a 3D model so that it can be animated/deformed. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fgdNzJXo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6173013af043ff5765cc49b5_Rigging.gif" alt="" width="880" height="741"&gt;A basic character rig.&lt;p&gt;&lt;strong&gt;Rigid Body Dynamics &lt;/strong&gt;— A physics simulation that calculates collisions on geometry that does not deform. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--juib53Yv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/61730158e20ef5067a5d6256_Rigid_Body_Dynamics.gif" alt="" width="400" height="400"&gt;RBD, rigid body dynamics.&lt;p&gt;&lt;strong&gt;Roll &lt;/strong&gt;— Rotation around the front to back axis of an object.&lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mUv8lgLy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/617301791d112512e97b9565_Roll.gif" alt="" width="504" height="407"&gt;RBD, rigid body dynamics.&lt;p&gt;&lt;strong&gt;Roughness &lt;/strong&gt;— A material property that defines how much irregularity the surface has. Rougher surfaces appear duller. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MLCSM_tZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/617301ac64e9fd2192f28749_Roughness.gif" alt="" width="640" height="355"&gt;Varying levels of roughness.&lt;p&gt;&lt;strong&gt;RTFM&lt;/strong&gt; — Read the F@(&amp;amp;ing Manual. You may get this response when asking a question on Slack or in a forum. As a good rule of thumb, it is often best to read the manual to see if you can find a solution. Plus, you'd be surprised what else you may learn.  &lt;/p&gt;
&lt;h3 id="17"&gt;S&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Samples&lt;/strong&gt; — The number of rays that a render engine uses to create an image. Lower samples can result in more noise, grain &amp;amp; jagginess. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P9YlqCXq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/617301d351f5f8040f4051be_Samples.gif" alt="" width="636" height="356"&gt;More samples help the rendering process create a cleaner final image.&lt;p&gt;&lt;strong&gt;Scalar&lt;/strong&gt; — Scalar refers to a value that is defined by one number. Often, scalar values will describe the &lt;em&gt;strength&lt;/em&gt; of something, like an effector. Scalar values exist in contrast to vector values, which are defined by three numbers (like position, or color) &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Scatter&lt;/strong&gt; — To distribute objects or clones over surface geometry. Many DCCs or render engines provide a method for scatting. Done with Cinema 4D's Cloner in object mode, with Octane's Scatter object, or with X-Particles emitter set to Object shape.&lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--agTW21su--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/617301ef2b4d4cffd9dc4b3b_Scatter.gif" alt="" width="693" height="375"&gt;Cubes scattered across a mountainous plane.&lt;p&gt;&lt;strong&gt;Seams&lt;/strong&gt; — The lines where UV geometry is joined together. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9144Xq1V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6173020adf1ca77f160db7de_Seams.gif" alt="" width="880" height="388"&gt;The seams of an unwrapped sphere.&lt;p&gt;&lt;strong&gt;Shader&lt;/strong&gt; — Mathematically based texture generators that can procedurally alter a surface's appearance. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6AZVrQAG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6173022270f6a3dd918e1460_shader.gif" alt="" width="733" height="440"&gt;Shaders exist for everything.&lt;p&gt;&lt;strong&gt;Simulation&lt;/strong&gt; — A reproduction of real-world behaviors through mathematical algorithms &amp;amp; equations. In 3D these are commonly used to model characteristics of hair, cloth, liquid and fire. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wzReR8Gt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6173023d420b0ef87b93db7f_Simulation_Cloth.gif" alt="" width="711" height="400"&gt;A simulation of cloth.&lt;p&gt;&lt;strong&gt;Specular&lt;/strong&gt; — The amount of reflectivity a smooth surface has. Specular highlights are the bright spots of reflected light seen on shiny surfaces. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lMrzOsNA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/617302676e0f5457e4fe3ee5_Specular.gif" alt="" width="591" height="405"&gt;Varying levels of specular.&lt;p&gt;&lt;strong&gt;Sphere&lt;/strong&gt; — A perfectly round geometrical object in 3D space. The 3D equivalent of a 2D circle. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n79zXgvi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/61730294792238c906ea4569_Sphere.gif" alt="" width="510" height="510"&gt;A wireframe of a sphere.&lt;p&gt;&lt;strong&gt;Spline&lt;/strong&gt; — A line that connects a series of vertices in 3D space. Because it has no depth, it has no renderable geometry. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Bu6TMcRA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/617302cd3f07f22c1e12570c_Spline.gif" alt="" width="569" height="365"&gt;A spline. They don't render because they don't have polygons.&lt;p&gt;&lt;strong&gt;Spot Light&lt;/strong&gt; — A type of light that emits from a single point outward in a single direction, typically characterized by a cone shape. Just like a spot light for a stage production.&lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nGwLCXwq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/617302eda27713e8b2bf6499_Spot_Light.gif" alt="" width="691" height="375"&gt;A spotlight in Cinema4D.&lt;p&gt;&lt;strong&gt;sRGB&lt;/strong&gt; — A standardized Red Green Blue color space used widely to describe a wide range of the color spectrum. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4tS4o1Oe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fa311695abe7a3d54da4_sRGB.png" alt="sRGB.png" width="870" height="972"&gt;The sRGB spectrum.&lt;p&gt;&lt;strong&gt;Standard Render&lt;/strong&gt; — The default native render engine inside Cinema4D and is a fast, stable CPU based biased renderer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stereoscopic 3D&lt;/strong&gt; — Two images rendered together from slightly different perspectives(mimicking our left and right eyes) that give the illusion of depth when viewed. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--z7CAVsTT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fa317572be5378001895_Stereoscopic_3D_v2.jpeg" alt="Stereoscopic 3D v2.jpg" width="880" height="495"&gt;A stereoscopic render.&lt;p&gt;&lt;strong&gt;Substance Softwares &lt;/strong&gt;— A suite of texturing applications developed by Allegorithmic allowingusers to paint directly on 3d models (Substance Painter) and procedurally create highly detailed &amp;amp; photoreal materials (Substance Designer).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Subsurface Scattering&lt;/strong&gt; — The effect of light penetrating slightly transparent surfaces that is then scattered and exits at a different angle than where it entered. The effect is used to depict photorealistic renderings of skin and wax for example. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8vhWvaFP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fa31b26e963ba2ca8580_Subsurface_Scattering.jpeg" alt="Subsurface Scattering.jpg" width="300" height="300"&gt;An example of subsurface scattering.&lt;h3 id="18"&gt;T&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Taper&lt;/strong&gt; — A deformation to an  object that allows for an object to narrow or widen at one end.&lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IXdRJjwf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6173032eff602fbf9ec21c9d_Taper.gif" alt="" width="569" height="365"&gt;Tapering an object.&lt;p&gt;&lt;strong&gt;Tesselation&lt;/strong&gt; — Divides a mesh into smaller tiles. In Cinema4D this is a GPU-enabled feature that allows real-time displacement to be displayed in the viewport. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9WOo2Ck8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6173034d75e81c0857f6542d_Tessellation.gif" alt="" width="695" height="408"&gt;Tesselation gives more detail to an object.&lt;p&gt; &lt;strong&gt;Texture&lt;/strong&gt; — A 2d image (bitmap or procedural) used in mapping a 3D object &amp;amp; describes the surface's various properties including height, normals, specularity, and reflection &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Texture Map&lt;/strong&gt; — The application of a texture to 3D geometry by way of various projections. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Timeline&lt;/strong&gt; — A linear representation of time for a scene that can also display key frames and audio wave forms. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TDnBDo1Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/61730377ddfe46fa33a27be0_Timeline.gif" alt="" width="880" height="447"&gt;Cinema4D's timeline. Similar to After Effects.&lt;p&gt;&lt;strong&gt;Toon Shader&lt;/strong&gt; — A non-photo-realistic shader that enables renderings that look like various styles of art. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XM3gVheZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/617303985dc71e32706c87af_Toon_Shader.gif" alt="" width="720" height="405"&gt;A toon shaded render.&lt;p&gt;&lt;strong&gt;Transmission&lt;/strong&gt; — When light is reflected by a surface, any energy that is not reflected is transmitted. This remaining transmission energy can be refracted or absorbed and scattered. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Transparency&lt;/strong&gt; — The ability of an object's material to allow light to pass through. Not to be confused with &lt;em&gt;Opacity&lt;/em&gt;. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x1W6URLq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/617303b78045fa9a32bdedd8_Transparency.gif" alt="" width="450" height="450"&gt;Transparency.&lt;p&gt;&lt;strong&gt;Triangulation&lt;/strong&gt; — The process of triangulating or converting an object's selected polygons or n-gons in to triangles. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IJidmweP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/617303d0311ea83ce31bbc44_Triangulation.gif" alt="" width="649" height="422"&gt;A polygonal object made of quads, converted to triangulated polygons.&lt;p&gt;&lt;strong&gt;Triplanar&lt;/strong&gt; — A texture mapping projection method using 3 planes that allows for removal of texture stretching and seams. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tumble&lt;/strong&gt; — To rotate an object around multiple axes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Twist&lt;/strong&gt; — The deformation of an object that allows for a curling around an object's Y axis. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Zbp9kzT9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/617303f13252b610d87604a5_Twist.gif" alt="" width="596" height="268"&gt;Using a twist deformer...twists...objects.&lt;h3 id="19"&gt;U&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Unbiased&lt;/strong&gt; — Describes a render engine that takes no approximations or shortcuts in its calculation of a render, often at the cost of speed when compared to biased solutions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Unity&lt;/strong&gt; — A cross-platform game engine developed by &lt;a href="https://unity3d.com/"&gt;Unity Technologies&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Unreal&lt;/strong&gt; — A cross-platform game engine developed by &lt;a href="https://www.unrealengine.com/"&gt;Epic Games&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Unwrapping&lt;/strong&gt; — The process of unwrapping 3D geometry into a flat 2D UV space for the purposes of texture mapping. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4NZxF3AI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/img/image-placeholder.svg" alt="" width="140" height="140"&gt;Unwrapping an object to UV map it.&lt;p&gt;&lt;strong&gt;UV&lt;/strong&gt; — A map that contains a flattened, unwrapped version of 3D geometry. UV map allows for 2D textures to be placed on corresponding parts of the mesh. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UVW&lt;/strong&gt; — The coordinate system for textures. Much like what XYZ coordinates do for geometry in 3D space, UVW coordinates do for 2D &amp;amp; 3D textures with values ranging from 0 to 1 &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i9CglWPG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fa2faa443850b02f3e5a_UV.jpeg" alt="UV.jpg" width="880" height="816"&gt;The UV map of an object.&lt;h3 id="20"&gt;V&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Vector&lt;/strong&gt; — A &lt;em&gt;scalar e&lt;/em&gt;ntity with both magnitude and direction.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vertex&lt;/strong&gt; — The point where two or more edges meet. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vertex Map&lt;/strong&gt; — A map that stores a level of influence from 0-100% for any given point. It can be used to limit or restrict deformations on geometry. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NZzz8uic--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6173056ba87c85c58216316a_Vertex_Map.gif" alt="" width="687" height="516"&gt;Bend deformation only on the yellow area of a vertex map.&lt;p&gt;&lt;strong&gt;Viewport&lt;/strong&gt; — One or more windows with which to view a 3D scene, including perspective and various orthogonal views (i.e. Top, Left, Front). &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8BYllsC0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/61730588a49b9b8d18caa1dc_Viewport.gif" alt="" width="880" height="425"&gt;Multiple viewport windows.&lt;p&gt;&lt;strong&gt;Volume&lt;/strong&gt; — The space contained inside a 3D shape, with length, width &amp;amp; height. Can also refer to data stored in 3D grids in such file formats such as &lt;em&gt;Open VDB&lt;/em&gt; to create effects such as smoke, fluids &amp;amp; clouds. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wptalX6X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/617305fcaebb4703f363f6fe_ezgif-3-c5c0786762c9.gif" alt="" width="880" height="495"&gt;A volume simulation of an explosion.&lt;p&gt;&lt;strong&gt;Volumetric Fog&lt;/strong&gt; — An effect recreating various atmospheric densities and typically derived from types of noise. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HL0M1ZGe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fa2f18694837da497268_Volumetric_Fog.jpeg" alt="Volumetric Fog.jpg" width="800" height="420"&gt;Volumetric Fog.&lt;p&gt;&lt;strong&gt;Volumetric Light&lt;/strong&gt; — Beams of visible light and shadows when casting light through an atmospheric environment. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jjGjzYhs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/61730612c52dba2659d3073f_Volumetric_Light.gif" alt="" width="800" height="600"&gt;Volumetirc light creating "god rays".&lt;p&gt;&lt;strong&gt;Voronoi&lt;/strong&gt; — A diagram of cells that can be used to fragment an object.&lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Cxu3MQKG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6173062875e81c3105f86d34_Voronoi.gif" alt="" width="600" height="410"&gt;Volumetirc light creating "god rays".&lt;p&gt;&lt;strong&gt;Voxel&lt;/strong&gt; — Short for volumetric pixel. Much like a pixel represents a value on a 2D grid, voxels represent points in 3D space. &lt;/p&gt;

&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nHPqPHzS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fa303d9eda503082fc9c_Voxels.png" alt="Voxels.png" width="310" height="355"&gt;A voxel can be thought of like a 3D pixel.&lt;p&gt;&lt;strong&gt;VRay&lt;/strong&gt; — A 3rd party hybrid CPU + GPU render engine created by &lt;a href="https://www.chaosgroup.com/"&gt;Chaos Group&lt;/a&gt; for a number of 3D applications.  &lt;/p&gt;
&lt;h4&gt;W&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Ward&lt;/strong&gt; — A type reflectance model for specular highlights named after Gregory Ward. For materials, Ward is best suited for soft surface such as rubber or skin.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Weight Map&lt;/strong&gt; — A map that stores values across the points of an object. In rigging, this map stores the percentage of influence of joints on geometry.&lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Gq7O3PuY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6173064b3dcd635b86c84876_Weight_Map.gif" alt="" width="600" height="410"&gt;A weight map, not to be confused with a vertex map.&lt;p&gt;&lt;strong&gt;Weld&lt;/strong&gt; — A modeling operation that connects two or more selected points and consolidates them into one.&lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jLSAAySe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/61730665a22bfd3aa9895b18_Weld.gif" alt="" width="600" height="410"&gt;Welding points together in Cinema4D.&lt;p&gt;&lt;strong&gt;Wet Map&lt;/strong&gt; — A map that stores information left by particles after contact with surface geometry to simulate the look of wetness. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wireframe&lt;/strong&gt; — A representation of a 3D model where only lines and vertices are shown&lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6ucnR4L7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6173068ffaab640e7be157fa_Wireframe.gif" alt="" width="220" height="480"&gt;Wireframe of a 3D flower.&lt;p&gt;&lt;strong&gt;World Coordinate System&lt;/strong&gt; — A system that uses a group of numbers to indicate the position of points or geometry relative to the center of a scene (0,0,0). &lt;/p&gt;
&lt;h3 id="21"&gt;X, Y, Z&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;X-Axis&lt;/strong&gt; — The horizontal line in a coordinate system designating the left &amp;amp; right of the world or object. Often represented by red or a red handle.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;XParticles&lt;/strong&gt; — A 3rd party particle system and simulation plugin developed by &lt;a href="https://www.insydium.uk/"&gt;Insydium Ltd.&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;x&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Xpresso&lt;/strong&gt; — Cinema 4D's visual expression system. Used to create complex, automated object interactions visual through use of connected nodes. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z2wjEW2A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6172fa3134646166e062ea8a_Xpresso.jpeg" alt="Xpresso.jpg" width="816" height="437"&gt;The XPresso Editor window inside of Cinema4D.&lt;p&gt;&lt;strong&gt;Y-Axis&lt;/strong&gt; — The vertical line in a coordinate system designating up and down of the world or object. Visually color colored green.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yaw&lt;/strong&gt; —  Rotation around the vertical axis of an object. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--m4mVMiqu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/617306f6a49b9b25d5cc387d_Yaw.gif" alt="" width="504" height="403"&gt;The yaw of rotation.&lt;p&gt;&lt;strong&gt;Z-Axis&lt;/strong&gt; — The line in a coordinate system designating depth of the world or object. Visually color colored blue.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Z-Depth&lt;/strong&gt; — A rendered 2D image pass containing the depth information of a shot, typically a 16-bit or higher greyscale image. Often used for calculating depth of field using 3rd party compositing plugins. &lt;/p&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4csgsZjx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://assets-global.website-files.com/61406347b8db463e379e2732/6173071750bd4a36db469d0b_Z_Depth.gif" alt="" width="500" height="290"&gt;A depth map showing the z-depth of objects to one another in relation to the camera.&lt;p&gt;&lt;strong&gt;ZBrush&lt;/strong&gt; — A digital sculpting tool developed by &lt;a href="https://www.pixologic.com/"&gt;Pixologic&lt;/a&gt;.  &lt;/p&gt;
&lt;p&gt;‍&lt;/p&gt;
&lt;p&gt;‍&lt;/p&gt;

</description>
    </item>
    <item>
      <title>20+ Console Methods That Will Revolutionize Debugging For You</title>
      <dc:creator>Nakul</dc:creator>
      <pubDate>Sun, 17 Apr 2022 06:21:44 +0000</pubDate>
      <link>https://dev.to/nakullukan/20-console-methods-that-will-revolutionize-debugging-for-you-1llk</link>
      <guid>https://dev.to/nakullukan/20-console-methods-that-will-revolutionize-debugging-for-you-1llk</guid>
      <description>&lt;p&gt;Please check &lt;a href="https://blog.webdevsimplified.com/2022-03/console-methods/"&gt;this&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>debug</category>
    </item>
    <item>
      <title>Alternative for docker desktop (windows WSL)</title>
      <dc:creator>Nakul</dc:creator>
      <pubDate>Thu, 07 Apr 2022 06:08:56 +0000</pubDate>
      <link>https://dev.to/nakullukan/alternative-for-docker-desktop-windows-wsl-1n79</link>
      <guid>https://dev.to/nakullukan/alternative-for-docker-desktop-windows-wsl-1n79</guid>
      <description>&lt;h2&gt;
  
  
  Install ubuntu from Microsoft Store
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Go to store and download &lt;strong&gt;Ubuntu 18.04 LTS&lt;/strong&gt; (you can also try latest version)&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2xak6zuotlfm6e2s0sr9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2xak6zuotlfm6e2s0sr9.png" alt="Ubuntu logo from Microsoft Store"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once installation is complete open &lt;strong&gt;Ubuntu 18.04 LTS&lt;/strong&gt; from startup menu and set a username and password (username can be you systems username without '.' and password can be same as your system password)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Install docker in ubuntu
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Open PowerShell in this directory and execute following commands
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;wsl &lt;span class="nt"&gt;-u&lt;/span&gt; root
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;docker.io
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;curl &lt;span class="nt"&gt;-L&lt;/span&gt; &lt;span class="s2"&gt;"https://github.com/docker/compose/releases/download/1.29.2/docker-compose-&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;uname&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;-&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;uname&lt;/span&gt; &lt;span class="nt"&gt;-m&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; /usr/local/bin/docker-compose
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo chmod&lt;/span&gt; +x /usr/local/bin/docker-compose
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo ln&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt; /usr/local/bin/docker-compose /usr/bin/docker-compose
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Once docker and docker-compose is installed, verify it by executing the command
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;docker &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;docker-compose &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Start docker daemon
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Execute below command in &lt;code&gt;cmd&lt;/code&gt; to start daemon
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;wsl &lt;span class="nt"&gt;-u&lt;/span&gt; root ^ dockerd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;NOTE: Do not close this window. &lt;/p&gt;

&lt;p&gt;Whenever you turn on your system repeat step &lt;strong&gt;Start docker daemon&lt;/strong&gt; to start the daemon.&lt;/p&gt;

</description>
      <category>docker</category>
      <category>wsl</category>
      <category>ubuntu</category>
    </item>
    <item>
      <title>Types of indexes in SQL Server</title>
      <dc:creator>Nakul</dc:creator>
      <pubDate>Sun, 13 Mar 2022 11:08:16 +0000</pubDate>
      <link>https://dev.to/nakullukan/types-of-indexes-in-sql-server-37ig</link>
      <guid>https://dev.to/nakullukan/types-of-indexes-in-sql-server-37ig</guid>
      <description>&lt;p&gt;&lt;a href="https://www.mssqltips.com/sqlservertip/6274/types-of-sql-server-indexes/"&gt;https://www.mssqltips.com/sqlservertip/6274/types-of-sql-server-indexes/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>sql</category>
    </item>
    <item>
      <title>Hosting Blazor WASM for free using Github Actions and Pages</title>
      <dc:creator>Nakul</dc:creator>
      <pubDate>Fri, 11 Mar 2022 07:02:36 +0000</pubDate>
      <link>https://dev.to/nakullukan/hosting-blazor-wasm-for-free-using-github-actions-and-pages-4kjd</link>
      <guid>https://dev.to/nakullukan/hosting-blazor-wasm-for-free-using-github-actions-and-pages-4kjd</guid>
      <description>&lt;p&gt;Reference: &lt;a href="https://swimburger.net/blog/dotnet/how-to-deploy-aspnet-blazor-webassembly-to-github-pages"&gt;https://swimburger.net/blog/dotnet/how-to-deploy-aspnet-blazor-webassembly-to-github-pages&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;YouTube: &lt;a href="https://www.youtube.com/watch?v=nNxII6jvPvQ&amp;amp;feature=emb_imp_woyt"&gt;https://www.youtube.com/watch?v=nNxII6jvPvQ&amp;amp;feature=emb_imp_woyt&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>github</category>
      <category>devops</category>
      <category>blazor</category>
    </item>
    <item>
      <title>Hiring</title>
      <dc:creator>Nakul</dc:creator>
      <pubDate>Mon, 01 Nov 2021 13:43:39 +0000</pubDate>
      <link>https://dev.to/nakullukan/hiring-397n</link>
      <guid>https://dev.to/nakullukan/hiring-397n</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mfduIrPT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jvynrok5yjqfvldn2n2d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mfduIrPT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jvynrok5yjqfvldn2n2d.png" alt="Image description" width="880" height="881"&gt;&lt;/a&gt;&lt;br&gt;
If interested,&lt;br&gt;
please share your resume to &lt;strong&gt;&lt;a href="mailto:matrixlukan@gmail.com"&gt;matrixlukan@gmail.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>hiring</category>
      <category>dotnet</category>
      <category>node</category>
      <category>python</category>
    </item>
    <item>
      <title>RaspberryPi, SIM7600, GPSd</title>
      <dc:creator>Nakul</dc:creator>
      <pubDate>Sun, 17 Oct 2021 14:12:44 +0000</pubDate>
      <link>https://dev.to/nakullukan/raspberrypi-sim7600-gpsd-2969</link>
      <guid>https://dev.to/nakullukan/raspberrypi-sim7600-gpsd-2969</guid>
      <description>&lt;p&gt;Today we are going to see how we can serve gps location from &lt;strong&gt;SIM7600&lt;/strong&gt; module to a port in &lt;strong&gt;raspberrypi&lt;/strong&gt; through daemon.&lt;/p&gt;

&lt;h3&gt;
  
  
  Requirements
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;RaspberryPi&lt;/li&gt;
&lt;li&gt;SIM7600 (Connected to &lt;strong&gt;/dev/ttyS0&lt;/strong&gt;, i.e., pi's serial port)&lt;/li&gt;
&lt;li&gt;Putty in your laptop/desktop for communication with raspberrypi.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This post does not cover on how to integrate SIM7600 module with raspberrypi.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Install minicom.
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Minicom&lt;/strong&gt; is a serial communication program that connects to devices through a GNU/Linux PC's serial ports. &lt;br&gt;
Before installing minicom, serial port has to be enabled from raspberry-configuration.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo raspi-config&lt;/code&gt;&lt;br&gt;
Go to &lt;em&gt;Interface Options-&amp;gt; P6 Serial Port -&amp;gt; No -&amp;gt; Yes&lt;/em&gt;.&lt;br&gt;
This will enable the serial port communication.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt install minicom&lt;/code&gt;&lt;br&gt;
This will install minicom. Confirm it by executing minicom -v&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faq8sge2u4b46dh9hcj3h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faq8sge2u4b46dh9hcj3h.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have connected SIM7600 module with raspberrypi through UART (ttyS0). If you have a GPS module of connector type usb, you might need to find its address.&lt;br&gt;
One easy way to find the address is by connecting only the gps module with pi and execute following command &lt;br&gt;
&lt;code&gt;ls -l /dev/ttyS0&lt;/code&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4spkhp6gpsqex0qwhvd0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4spkhp6gpsqex0qwhvd0.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
If the port is correct then you will get an message as above.&lt;/p&gt;

&lt;p&gt;Next step is to use minicom to communicate with pi's serial port through AT commands.&lt;br&gt;
&lt;code&gt;sudo minicom -b 115200 -D /dev/ttyS0&lt;/code&gt;&lt;br&gt;
This will open minicom terminal.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwu6arvm2ni5ec6fdk8bf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwu6arvm2ni5ec6fdk8bf.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can test whether connection are correct by typing &lt;code&gt;AT&lt;/code&gt; and press enter.&lt;br&gt;
This should return &lt;code&gt;OK&lt;/code&gt;.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3zotuy9cv4ml6m72hn1i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3zotuy9cv4ml6m72hn1i.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Enable GPS in SIM7600
&lt;/h3&gt;

&lt;p&gt;By default GPS will be off. We need to perform following operations&lt;/p&gt;

&lt;h4&gt;
  
  
  1) Turn on GPS
&lt;/h4&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

AT+CGPS=1,1
Returns OK
AT+CGPS?
_Returns_ +CGPS:1, 1
        OK


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn16nlc9rxm2x1roecen4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn16nlc9rxm2x1roecen4.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enter below AT command to turn on GPS automatically whenever the module is turned on.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

AT+CGPSAUTO=1
_Returns_ OK


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Enter below AT command to feed the gps &lt;strong&gt;nmea&lt;/strong&gt; sentence every 1 second in the serial port out. &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

AT+CGPSINFOCFG=1,31
_Returns_ OK


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fspxj2oosu7tm9ascrmzg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fspxj2oosu7tm9ascrmzg.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Exit from minicom terminal and restart pi and SIM7600. To confirm everything went well. &lt;br&gt;
&lt;code&gt;cat /dev/ttyS0&lt;/code&gt;&lt;br&gt;
Don't worry, if nothing gets print on the screen. This is because minicom stops writing data once you exit from its terminal. &lt;br&gt;
You try again the above command in a different terminal session without closing minicom.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Automate minicom
&lt;/h3&gt;

&lt;p&gt;Before creating script to automate we have to enable the scripting in minicom.&lt;br&gt;
&lt;code&gt;minicom -s&lt;/code&gt;&lt;br&gt;
will open minicom configuration.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffv1h60e4cclp8cj8hx13.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffv1h60e4cclp8cj8hx13.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select Serial port setup option from menu and configure as shown below.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fij4dpt8fkrxgjrwbaxzi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fij4dpt8fkrxgjrwbaxzi.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, create a minicom script to execute &lt;strong&gt;AT+CGPSINFOCFG=1,31&lt;/strong&gt;&lt;br&gt;
Content of the script is as shown below.&lt;br&gt;
&lt;code&gt;send AT+CGPSINFOCFG=1,31&lt;/code&gt;&lt;br&gt;
Save the file in &lt;em&gt;/home/pi/start-gps.sh&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You can see &lt;strong&gt;nmea&lt;/strong&gt; sentence printing in minicom terminal once you execute &lt;code&gt;minicom -S start-gps.sh&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Still this is not enough, we have to create a bash script to execute above command during system startup automatically.&lt;/p&gt;

&lt;p&gt;Create &lt;em&gt;minishell.sh&lt;/em&gt; with below content in &lt;em&gt;/home/pi/&lt;/em&gt;.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

#!/bin/bash
minicom -S start-gps.sh


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Make it executeable &lt;br&gt;
&lt;code&gt;chmod u+x minishell.sh&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;bashrc&lt;/strong&gt; is a program which can execute other scripts on startup.&lt;br&gt;
Edit &lt;em&gt;./bashrc&lt;/em&gt; file and add &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

#start minicom gps
echo "turning gps on"
sudo ./minishell.sh


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;at the end of the file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Install gpsd, gpsd-clients
&lt;/h3&gt;

&lt;p&gt;Install &lt;strong&gt;gpsd&lt;/strong&gt; and &lt;strong&gt;gpsd-clients&lt;/strong&gt; from apt.&lt;br&gt;
&lt;code&gt;sudo apt-get install gpsd gpsd-clients python-gps&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Edit &lt;em&gt;gpsd.sock&lt;/em&gt; file as shown below&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcd4x06odvsz1qi0pbmxi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcd4x06odvsz1qi0pbmxi.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Again edit ./.bashrc file to add below script at the end of the file.&lt;br&gt;
&lt;code&gt;sudo gpsd /dev/ttyS0 -F /var/run/gpsd.sock&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Restart your pi.&lt;br&gt;
Now you will receive gps information from port 2947.&lt;br&gt;
To verify the same just enter &lt;code&gt;gpsmon&lt;/code&gt; in terminal.&lt;br&gt;
You will see &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9bxmlx4sv0buigas2ryc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9bxmlx4sv0buigas2ryc.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you.&lt;/p&gt;

</description>
      <category>raspberrypi</category>
      <category>gps</category>
      <category>sim7600</category>
      <category>iot</category>
    </item>
    <item>
      <title>Hiring Python Developers</title>
      <dc:creator>Nakul</dc:creator>
      <pubDate>Thu, 16 Sep 2021 04:29:39 +0000</pubDate>
      <link>https://dev.to/nakullukan/hiring-1ib8</link>
      <guid>https://dev.to/nakullukan/hiring-1ib8</guid>
      <description>&lt;p&gt;Please send your resume to &lt;strong&gt;&lt;a href="mailto:nakul.a@experionglobal.com"&gt;nakul.a@experionglobal.com&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z2DGHWpw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n5qgymu8d408thal72hc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z2DGHWpw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n5qgymu8d408thal72hc.jpg" alt="1631695643237"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thankyou&lt;/p&gt;

</description>
      <category>hiring</category>
    </item>
    <item>
      <title>Raspberry Pi: Login to raspberrypi without external monitor.</title>
      <dc:creator>Nakul</dc:creator>
      <pubDate>Wed, 25 Aug 2021 15:11:09 +0000</pubDate>
      <link>https://dev.to/nakullukan/raspberry-pi-login-to-raspberrypi-without-external-monitor-3knh</link>
      <guid>https://dev.to/nakullukan/raspberry-pi-login-to-raspberrypi-without-external-monitor-3knh</guid>
      <description>&lt;p&gt;Hi folks, today we will see how to login to raspberrypi without any need of an external monitor.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites:-
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;You have a SD with raspbian OS installed.&lt;/li&gt;
&lt;li&gt;You have a laptop or desktop with putty installed (If you are using a linux then terminal is enough).&lt;/li&gt;
&lt;li&gt;You have an ethernet cable to connect your system and pi.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Steps:-
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;First step is to enable ssh in your pi. &lt;br&gt;
For that, create an empty file named &lt;strong&gt;ssh&lt;/strong&gt; in the root path of your SD card in which OS is installed. This will enable ssh in pi when it boots up.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ooyk9-xu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0r9gz6kf7b15u6udpejw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ooyk9-xu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0r9gz6kf7b15u6udpejw.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connect your pi and laptop using an ethernet cable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now you can connect to the pi through ssh. &lt;br&gt;
For that open the putty application in your system. By default pi will have hostname as 'raspberrypi'. Enter the hostname as 'raspberrypi' &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mXW9_0YC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/40sg4edt28x0zipfr546.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mXW9_0YC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/40sg4edt28x0zipfr546.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Login as pi. &lt;br&gt;
Default username is &lt;strong&gt;pi&lt;/strong&gt; and password is &lt;strong&gt;raspberry&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7zgpuLVO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/howr3qns3x6qm48gp2xw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7zgpuLVO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/howr3qns3x6qm48gp2xw.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thankyou...&lt;/p&gt;

</description>
      <category>iot</category>
      <category>raspberyypi</category>
      <category>installation</category>
      <category>ssh</category>
    </item>
    <item>
      <title>How to CRUD dynamically in Entity Framework</title>
      <dc:creator>Nakul</dc:creator>
      <pubDate>Sun, 25 Jul 2021 12:19:01 +0000</pubDate>
      <link>https://dev.to/nakullukan/how-to-crud-dynamically-in-entity-framework-3fi3</link>
      <guid>https://dev.to/nakullukan/how-to-crud-dynamically-in-entity-framework-3fi3</guid>
      <description>&lt;p&gt;This topic is mainly focused on performing CRUD operations using entity framework at runtime. That is, we can choose to which &lt;strong&gt;Table/DbSet&lt;/strong&gt; we can CRUD data.&lt;/p&gt;

&lt;h5&gt;
  
  
  Prerequisite
&lt;/h5&gt;

&lt;p&gt;Lets create a DbContext &lt;code&gt;MyDbContext&lt;/code&gt; with 2 DbSets &lt;code&gt;Animals&lt;/code&gt; and &lt;code&gt;Birds&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MyDbContext&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;DbContext&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;DbSet&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Animal&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Animals&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;DbSet&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Bird&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Birds&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Animal&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;LivingThing&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;NumberOfTeeths&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;RunningSpeed&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Bird&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;LivingThing&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;MaxFlyingDistance&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;IsHerbivorous&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;LivingThing&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;Id&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;Name&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Create
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;To create an instance of a &lt;code&gt;Animal&lt;/code&gt; or &lt;code&gt;Bird&lt;/code&gt; entity. First get access to the &lt;code&gt;DbSet&amp;lt;&amp;gt;&lt;/code&gt; by its name. Then take the first &lt;code&gt;Type&lt;/code&gt; from its generic arguments.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;entityType&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;_dbContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetType&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;GetProperty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Animals"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;PropertyType&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetGenericArguments&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;FirstOrDefault&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kt"&gt;object&lt;/span&gt; &lt;span class="n"&gt;livingThing&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Activator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;CreateInstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;entityType&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;LivingThing&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Activator&lt;/code&gt; can be used to create an instance of a given 'Type'. &lt;/li&gt;
&lt;li&gt;Now you can set commonly available properties such as &lt;code&gt;Id&lt;/code&gt; and &lt;code&gt;Name&lt;/code&gt; directly and properties which are specific to an entity can set using reflection.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="n"&gt;livingThing&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;livingThing&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Tiger"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Set other properties dynamically&lt;/span&gt;
&lt;span class="n"&gt;Dictionary&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;otherProperties&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Dictionary&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;()&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s"&gt;"NumberOfTeeths"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;10&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s"&gt;"RunningSpeed"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;50&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// This will set all the properties which are specific to a class.&lt;/span&gt;
&lt;span class="k"&gt;foreach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;prop&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;otherProperties&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Keys&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;   
    &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;propertyValue&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;otherProperties&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;prop&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
    &lt;span class="n"&gt;livingThing&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetType&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;GetProperty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prop&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;SetValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;livingThing&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;propertyValue&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Add the entity
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="n"&gt;_dbContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;livingThing&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;_dbContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;SaveChanges&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Read
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Get the IQueryable&amp;lt;&amp;gt; property through reflection
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;linqQuery&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;_dbContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetType&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;GetProperty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Animals"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;GetValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;_dbContext&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;IQueryable&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;LivingThing&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;;&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;entity&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;linqQurey&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;First&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Update
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Get the entity by &lt;code&gt;Id&lt;/code&gt;, update properties and call &lt;code&gt;SaveChanges()&lt;/code&gt; to update the entity.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;linqQuery&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;_dbContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetType&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;GetProperty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Animals"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;GetValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;_dbContext&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;IQueryable&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;LivingThing&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;;&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;entity&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;linqQurey&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AsTracking&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;Where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;First&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="n"&gt;entity&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"New Name"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;...&lt;/span&gt;
&lt;span class="p"&gt;...&lt;/span&gt;
&lt;span class="n"&gt;_dbContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;SaveChanges&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Delete
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Get the entity by &lt;code&gt;Id&lt;/code&gt;. Use &lt;code&gt;Remove()&lt;/code&gt; to delete the entity.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;linqQuery&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;_dbContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetType&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;GetProperty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Animals"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;GetValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;_dbContext&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;IQueryable&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;LivingThing&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;;&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;entity&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;linqQurey&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AsTracking&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;Where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;First&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="n"&gt;_dbContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Remove&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;entity&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;_dbContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;SaveChanges&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Thanks for reading...&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>dotnet</category>
      <category>entityframework</category>
    </item>
    <item>
      <title>(--)</title>
      <dc:creator>Nakul</dc:creator>
      <pubDate>Sun, 25 Jul 2021 09:04:18 +0000</pubDate>
      <link>https://dev.to/nakullukan/how-to-crud-dynamically-using-entity-framework-141a</link>
      <guid>https://dev.to/nakullukan/how-to-crud-dynamically-using-entity-framework-141a</guid>
      <description></description>
    </item>
  </channel>
</rss>
